Jump to content
IGNORED

Wired Weather Station for Console only?


Meddler

Recommended Posts

Excited by the idea of the Wireless Weather Station project, but with no intention of spending that sort of money, I was wondering about the potential of using the Joystick port so anybody with a basic Console could do something.I was thinking about measuring pulse frequency on the "Fire" button for wind speed and temperature.

 

Two things came out of my pondering:

 

One: There are a lot of single-wire sensors available so it should not be too difficult to interface to them and ....

 

it turns out that back in the day, late 1980's (I had completely forgotten!), I had interfaced a Temperature Module FE33L to the TI99 through the Joystick port: A little assembly picked up the serial data and stored it as ASCII so that an EB routine could pick it up to display and print an asterix (*) on a horizontal temperature scale: the module updated at 10 second intervals to give me a real-time clock and so I was able to display/print only changes rather than continuous reading using excessive memory.

 

I will dig out that code if anyone is interested in adapting it.

 

Two: Back to the original question - I looked around the site to see if anyone had tried measuring pulse frequency on the TI and found that our ideas man had already been there:

 

http://atariage.com/forums/topic/218900-the-ti-994a-as-a-weather-station/?hl=fire+button&do=findComment&comment=2871941

 

It is a very simple matter to use opto-couplers for a wind direction vane pick-up so if I can only fiqure out a simple way to interface temperature and humidity then we have it covered for us cheap-stakes.

 

Ref:http://atariage.com/forums/blog/659/entry-13546-wireless-weather-station-managed-by-the-ti-994a-last-update-13117/

Edited by Meddler
  • Like 1
Link to comment
Share on other sites

Oh yeah! The idea of a nice AD converter for the joystick port gets me excited. :-D

 

With talent shown by the hardware guys here and their awesome PCB designs, I can envision "one day" a project board designed with a joystick connector positioned on the PCB in such a way that when the board is inserted into a 3D printed case, the unit would plug into the left-hand side of the TI looking flush, sort of similar to what a speech synthesizer looks like on the right-hand side. Also, an alternative to the joystick port approach could be that little side connector on Jedimatt42's 32K.

 

There are all sorts of potential interfacing solutions for the TI. Some components/assemblies are already pre-made and could possibly be tasked for our purposes like << THIS >> or << THIS >> even << THIS >> or possibly even << THIS >> and << THIS >>.

 

I'm definitely interested in seeing your Extended BASIC code for your solution in the past. Now days almost anything can be compiled and loaded into the FlashROM 99.

 

Getting up in the morning and turning on the TI to check temp and other conditions? Yeah, I can see that! :thumbsup: I cannot wait to see what solutions people might come up with. Now, if something PCB based and ready to use (with software) ever gets built and marketed to the TI community for $60.00 or less, I'm an automatic +1. If it costs more, I'll have to think it over a little bit or wait a month.

Link to comment
Share on other sites

If you didn't need it to be wireless, then practically any sensor you're likely to want is available with an I2C interface (such as an encased temperature and humidity sensor - https://www.adafruit.com/product/1293), and I've got an I2C interface for the joystick port here: http://www.stuartconner.me.uk/ti/ti.htm#i2c_interface). The software listing will need expanding to be able to read a byte over the I2C interface (not difficult) and to interpret/display the data received.

  • Like 1
Link to comment
Share on other sites

Another approach, which I think Omega alluded to in a round-about sort of way in a PM ;-), would be to hook the sensors up to a Raspberry Pi (which also has an I2C interface), run a web server on that, set up a pretty page to display the sensor data, and access that using the Internet Browser on the TI. The Internet Browser includes a tag to refresh the page every couple of seconds to show up-to-date data.

 

Lots of ways to skin this cat ... ;-)

  • Like 1
Link to comment
Share on other sites

I was saying low cost i.e my 'bits box' not $60 more like $6 and Stuart's i2c is the way to go in Assembler but the intention is the get something that CONSOLE ONLY users can usefully play with using the KISS principle. :)

Not wishing to re-invent the wheel, I was looking for a timing loop that accessed the key/joystick port to count pulses: This is required to read wind-speed rotational pulses from an opto-coupler etc. The same routine could be used with a simple 555 astable with a thermistor (or other resistive device) to vary the frequency against temperature.

However, the suggestion of a an A/D converter made me think that the 555 comparator function would work with surprising accuracy and versatility.

Imagine this: the timing resistor (e.g thermistor) is connected to the Joystick select such that each time the joystick is selected the timing capacitor is charged; put that in a loop count of say 1000 and monitor the 555 output on the 'fire' line; the moment that the output change is detected means that the timing capacitor is charged. This means that any change of charging resistance gives a count related to resistance (temperature).

 

The 555 timer also has a 'Control' input which will vary the charge time so we do have a rudimentary A/D converter.

So there are two routines required: 1) a simple loop counter checking for pulses 2) a simple loop counter with break-out on trigger. Ideally it would be nice to control something so I am thinking that, after 'OPENing' CS1 or CS2 then PRINT CSn "" will trigger the cassette motor drive opto-isolator

Diagrams attached:

If you didn't need it to be wireless, then practically any sensor you're likely to want is available with an I2C interface (such as an encased temperature and humidity sensor - https://www.adafruit.com/product/1293), and I've got an I2C interface for the joystick port here: http://www.stuartconner.me.uk/ti/ti.htm#i2c_interface). The software listing will need expanding to be able to read a byte over the I2C interface (not difficult) and to interpret/display the data received.

 

The humidity sensor I looked at gave a 40 bit serial data stream which would definitely require a bit of processing but as the Raspberry/AVR/Ardunio people all have libraries for this stuff then why shouldn't we?

 

Sorry for all the talk and no action but you guys have suckered me in and I am waiting for my Video VGA converter.

IC555combi_mini.bmp

Link to comment
Share on other sites

... but you guys have suckered me in and I am waiting for my Video VGA converter.

 

ROFL! Glad to hear it! Welcome to the addiction!

 

I'm liking ALL the varied ideas for implementation here. I'm not sure which way to go myself! I like the UberGROM idea by Ksarul and would like to see this implementation. If the UberGROM could support a receiver and have the software in a cartridge, that would be too cool. Imagine a special all-in-one TI-99/4A "weather cartridge" complete with receiver and operating software!

 

On the other hand, it would also be nice to have a program in the FR99... but that would require something other than the UberGROM approach.

 

I also like the CHEAP KISS approach... but I'm not willing to drill any more holes.

 

On a side note, there are many different CHEAP outdoor wireless thermometers with humidity and barometric pressure. If one knows what they are looking, for they can buy a replacement sending unit off of Ebay as a replacement part. Now making a receiver and decoding the information from one of those units might be too tricky.

Link to comment
Share on other sites

You could always use the analog inputs from the UberGROM cartridge. Plug in the cartridge containing the program and it works beautifully for console-only users. Just connect the correct header pins and write a program to read the data. . .

Thanks but I do not have an UberGROM and having one would mean that it would not be console only!

 

I lost interest in the Weather station idea, I can just look out the window or watch the forecasts but the idea of using the Joystick Port for control and measurement has some merit.

 

My video VGA converter arrived and so I will hook it up and bring out the port connections to see what can be done on the next rainy Sunday.

 

Meanwhile, I will start another thread to put forward what plausible ideas I have conceived.

Link to comment
Share on other sites

You could always use the analog inputs from the UberGROM cartridge. Plug in the cartridge containing the program and it works beautifully for console-only users. Just connect the correct header pins and write a program to read the data. . .

 

Ksarul - Could you give us a little bit more detail on how that could be accomplished? Since you typed that message a week ago it's been in the back of my mind... and it will not leave.

 

To that end what I'd like to see, would unfortunately require the assistance and work from multiple people on the board here to bring it to fruition. What would be required:

 

1) An Extended BASIC set of assembly language calls, so the "average guy" or tinkerer could write their own programs for it.

2) An update to one of the BASIC compilers to support the new routines (if the program is going to be a burned in).

3) An interface kit that one could buy from someone like arcadeshopper, so we could have everything necessary to start.

4) A new thread (assuming 1-3 have been accomplished) to show off our new projects, new applications, programming and photos.

 

... of course a new 3D printed cartridge with connection points on the outside of the case would be cool too! Am I forgetting anything?

Link to comment
Share on other sites

Note (for @Meddler): the UberGROM is a cartridge board, so your weather station would be a standard, plug-in cartridge (and technically remain a console-only implementation, as it would add the functionality to the console without modifying the console or adding any extenal hardware dependencies.

 

@Omega: to implement something like this requires someone with low-level programming skills. That is definitely NOT me, as I quickly get lost when digging around that deeply into Assembly/GPL. ;)

Link to comment
Share on other sites

Note (for @Meddler): the UberGROM is a cartridge board, so your weather station would be a standard, plug-in cartridge (and technically remain a console-only implementation, as it would add the functionality to the console without modifying the console or adding any extenal hardware dependencies.

 

@Omega: to implement something like this requires someone with low-level programming skills. That is definitely NOT me, as I quickly get lost when digging around that deeply into Assembly/GPL. ;)

 

Wouldn't you need some form of assembly support though to access it? Wouldn't then some form of RAM expansion be required?

Link to comment
Share on other sites

@Vorticon, you would have to write an Assembler (or GPL) routine to access it (which is why I am out as a source of a completed product--I can't program in either of them). The thing is--it is a cartridge, so the program can be resident on the cartridge itself, no expansion memory needed. If it is in GPL, you have about 40K of space to fit your program into on the cartridge, if it is in Assembler, you have 8K (no bank switching) or up to 512K in 8K banks. In the spirit of staying console only and staying in the realm of traditional ROM cartridges, you could stay within 16K (two ROM banks), and 8K would probably be very doable. Since this application would be written for the cartridge from the start, it would not need the 32K expansion memory space as a launch pad area. It would be fully contained in the cartridge >6000 space and limited to using the scratch pad and VDP memory as the only external support.

 

Plug sensor into cartridge, plug in cartridge, fire up the console, select "2" for "Weather Station" and you're off and running. . .

  • Like 1
Link to comment
Share on other sites

Tursi would know that answer for sure, as he was the one that asked for them. BTW, if you look at an UberGROM board you will see one position where a header could be placed that doesn't have one. It is the A/D pins. There isn't a header there so that it will fit into the cartridge case--it was intended that there be wires there taking the header to wherever you needed it to be for outside access.

Link to comment
Share on other sites

Just so answers are on every question for the benefit of future people searching...

 

The A/D pins are analog input-only pins.

There are also 6 digital GPIO pins which can be configured as input or output.

 

Speaking of that, and the need for a graphic labeling the pins for newbies/neophytes, has << THIS MANUAL >> on the UberGROM board been finalized yet?

Link to comment
Share on other sites

In opening it, I see that's also preliminary documentation, interesting. My document was complete before we combined them, I guess I forgot there were notes to me. I'm a little disappointed (again) that it was released without checking with me, leaving the notes that I'm expected to fill in. ;)

 

But that's easy enough... I assume you just want the comments answered. Just as well, I discovered a mistake in my own thinking that I let everyone else spread around (hey, I guess we're even ;) ). The datasheet had that right, seems it was only my memory that slipped.

 

There are only /four/ digital GPIO pins, not six. Sorry about that. The first two pins are actually the XTAL1 and XTAL2 pins for external clock. This would be used in an advanced cartridge to allow a faster AVR - up to 20MHz versus the internal 8MHz. This wouldn't help GROM emulation so would be for custom applications.

 

512K ROM-GROM Cartridge Board Manual V0.9.doc

Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...