The basic build of the folding camper is complete. The panels are insulated and I have begun painting. I decided not to fiberglass. I am using a high quality house paint, The painting and finishing takes time and you can spend as much or as little on it, but it is directly proportional to how it will look in the end. I am trying to strike a balance because I want it get it on the truck and use it soon.
The top, front and side panels will be ultra white. It is taking between 3 and 4 coats to get good thick coverage. The bottom half and underside will be either black or desert tan, maybe forest green, I am still deciding. The inside may not get painted until I use it a few times but I plan to urethane the floor. The interior walls may be what ever color of extra paint I have from other house projects :-)
Tuesday, July 11, 2017
Sunday, June 11, 2017
APRS Touch Tone Gateway
I have been playing with WB2OSZ Direwolf software, it is very powerful and can act as a APRS Touch Tone gateway. His software ia located HERE.
I was able to get his code working under windows and using the DTMF decoder it is decoding my 10 digit call sign and a two digit message. This is a new configuration idea suggested by the father of APRS WB4APR, see the new idea below. I just set mine up on a simplex radio for testing.
-----------Bob's new idea! --------------
But here is the NEW idea of how to use its 2 digit message capability
locally...
1) Have it listen from a very high central metro area location for DTMF on
146.58
2) The two-digit messages (01 to 99) can be used to trigger the APRS and
voice response of "CALLSIGN, LISTENING ON XXX.XXX MHz"
3) then ALL APRS mobiles in the area will see the message on their radios
4) AND he messages goes worldwide in the APRS-IS system
5) You could be called back via Echolink for example
6) AND if anyone is monitoring 146.58, they will hear EVERYONE on the air
and where they are listening.
In our area with over 50 repeaters, we are so spread out, hardly any
repeater is being used. But this way, everyone's "presence" on the air is
announced on APRS and the single 146.58 just like APRS was always intended
to be... a single clearing house channel for everything happening in ham
radio.
But now you only need a DTMF radio. Not a full APRS rig.
Oh, we just make a local list 01 to 99 of the different frequencies. Every
local list is different, but so are the repeaters in every local area...
Though I am starting to think it can be quite universal! Wow, Il start
now... for example 76 is 146.76 and 94 is 146.94, etc!
You just program your DTMF memory with the few repeaters you use, and then
sending out your message is just one button. Send the DTMF memory with
your chosen "monitoring frequency!
for more info on APRStt see http://aprs.org/aprstt.html
Bob Bruninga, WB4APR
USNA Satellite Lab
I was able to get his code working under windows and using the DTMF decoder it is decoding my 10 digit call sign and a two digit message. This is a new configuration idea suggested by the father of APRS WB4APR, see the new idea below. I just set mine up on a simplex radio for testing.
-----------Bob's new idea! --------------
But here is the NEW idea of how to use its 2 digit message capability
locally...
1) Have it listen from a very high central metro area location for DTMF on
146.58
2) The two-digit messages (01 to 99) can be used to trigger the APRS and
voice response of "CALLSIGN, LISTENING ON XXX.XXX MHz"
3) then ALL APRS mobiles in the area will see the message on their radios
4) AND he messages goes worldwide in the APRS-IS system
5) You could be called back via Echolink for example
6) AND if anyone is monitoring 146.58, they will hear EVERYONE on the air
and where they are listening.
In our area with over 50 repeaters, we are so spread out, hardly any
repeater is being used. But this way, everyone's "presence" on the air is
announced on APRS and the single 146.58 just like APRS was always intended
to be... a single clearing house channel for everything happening in ham
radio.
But now you only need a DTMF radio. Not a full APRS rig.
Oh, we just make a local list 01 to 99 of the different frequencies. Every
local list is different, but so are the repeaters in every local area...
Though I am starting to think it can be quite universal! Wow, Il start
now... for example 76 is 146.76 and 94 is 146.94, etc!
You just program your DTMF memory with the few repeaters you use, and then
sending out your message is just one button. Send the DTMF memory with
your chosen "monitoring frequency!
for more info on APRStt see http://aprs.org/aprstt.html
Bob Bruninga, WB4APR
USNA Satellite Lab
Camper Build VIII
It has been a while since I posted in general and regarding the camper build. The build continues a bit each weekend with the following progress:
- Windows with slider inserts completed
- Insulating of the top and sides
- Paneling of the front with door and one side
Here are the windows with screens in, looking in one to the other.
Here is the basic assembly of the windows using the synthetic wood trim material and the slider guides that are glued to the synthetic wood.
This is the black plastic sliding door tracks I am using that I got from Rockler
I am finishing up all the insulating with the R-TECH foam.
Here is the door insulated and sided with 2.7 mm thin door skin plywood.
Here is one of the sides insulated with the inside sidinging.
Once I finish the insulation and interior paneling I will begin the exterior finish. I am planning on a light epoxy fiberglass coating and then paint. I still need to work out the door latch assembly and the general weather sealing.
I am hoping to try it out camping in the late summer as well as fall/winter since it is insulated.
Monday, April 17, 2017
Retro Computer Fun
For the last couple of months I have been playing with some Retro Computers.
- CP/M on a Teensy 3.6 RunCPM
- MMBasic on a Circuit Gizmos CGCOLORMAX2
I thought CP/M and the various tools on a tiny computer like the Teensy 3.6 would be a perfect low powered non-Internet computer various projects and to be portable. However I still needed a terminal to use CP/M and I wanted some minimal graphic capability too. In search of a small dumb terminal board I stumbled in the the world of Maximite HERE and MMBasic created by Geoff the genius!
I am now using a Maximite clone (CGCOLORMAX2). It can drive a VGA or composite display directly with great graphics along with a SD card based flash file system, real-time clock and I/O capability. Recently I have been digging into the power of Geoff's MMBasic that runs on the CGCOLORMAX2 (which uses a PIC32). Even though it is a single precision version of BASIC I have had great success in porting some mathematically intensive astronomy programs.
I have setup my CGCOLORMAX2 to run with a small 4.3 TFT LCD composite display used for backup cameras. The only thing else needed is a PS2 keyboard and DC power to run the board and the monitor (e.g. 12 volts). This setup is running great so far and will do some power consumption tests soon to size the battery pack to make this portable.
Tuesday, January 31, 2017
COSMAC ELF 1802 Clock
I am exploring the idea of building a COSMAC ELF 1802 Clock.
This will be a clock based on the COSMAC ELF 1802 CPU along with some CMOS counters and a time base along with some kind of display.
The plan is that it will display time, date, and year. Since it is an "ELF clock" it will be describing the instant in time, defined as the number of days since the ELF was first described in Popular Electronic Magazine in August of 1976 (8/1/1976). This will be similar to Unix time but without the resolution down to a second.
The time keeping element would be a chain of 8 bit CMOS counters, one for seconds, minutes, and days. These counters could be read as input ports from the CPU.
For software I am trying Tiny Basic to see if it can at least update the display several times per minute. The display will not include seconds in the first revision if using Tiny Basic since it can not complete the calculation fast enough.
I have written the initial conversion of the day counter to calculate year, month, and day accounting for leap year. With a 1.75 Mhz clock speed using the Emma02 emulator it takes 20 seconds for the 300+ lines of code to complete the calculation. Since Tiny Basic only supports 16 bit integers the clock will have a limit of the year 2065.
Below is my code so far. I will remove the spaces after it is debugged to save space but for now it has only been slightly space compressed.
This will be a clock based on the COSMAC ELF 1802 CPU along with some CMOS counters and a time base along with some kind of display.
The plan is that it will display time, date, and year. Since it is an "ELF clock" it will be describing the instant in time, defined as the number of days since the ELF was first described in Popular Electronic Magazine in August of 1976 (8/1/1976). This will be similar to Unix time but without the resolution down to a second.
The time keeping element would be a chain of 8 bit CMOS counters, one for seconds, minutes, and days. These counters could be read as input ports from the CPU.
For software I am trying Tiny Basic to see if it can at least update the display several times per minute. The display will not include seconds in the first revision if using Tiny Basic since it can not complete the calculation fast enough.
I have written the initial conversion of the day counter to calculate year, month, and day accounting for leap year. With a 1.75 Mhz clock speed using the Emma02 emulator it takes 20 seconds for the 300+ lines of code to complete the calculation. Since Tiny Basic only supports 16 bit integers the clock will have a limit of the year 2065.
Below is my code so far. I will remove the spaces after it is debugged to save space but for now it has only been slightly space compressed.
5 PR "SERIAL EPOCH";
10 INPUT S
20 GOSUB 1000
30 GOSUB 3000
55 REM Y=YEAR L=LEAP TRUE/FALSE P=POSITION IN YEAR(DAYS) M=MONTH D=DAY
60 PR "14:23 ";M;"/";D;"/";Y
65 PR "Y=";Y;" L=";L;" P=";P;" M=";M;" D=";D
100 END
1000 IF S>0Y=1976
1005 IF Y=1976L=1
1007 IF Y=1976P=S-0
1010 IF S>153Y=1977
1015 IF Y=1977L=0
1017 IF Y=1977P=S-153
1020 IF S>518Y=1978
1025 IF Y=1978L=0
1027 IF Y=1978P=S-518
1030 IF S>883Y=1979
1035 IF Y=1979L=0
1037 IF Y=1979P=S-883
1040 IF S>1248Y=1980
1045 IF Y=1980L=1
1047 IF Y=1980P=S-1248
1050 IF S>1614Y=1981
1055 IF Y=1981L=0
1057 IF Y=1981P=S-1614
1060 IF S>1979Y=1982
1065 IF Y=1982L=0
1067 IF Y=1982P=S-1979
1070 IF S>2344Y=1983
1075 IF Y=1983L=0
1077 IF Y=1983P=S-2344
1080 IF S>2709Y=1984
1085 IF Y=1984L=1
1087 IF Y=1984P=S-2709
1090 IF S>3075Y=1985
1095 IF Y=1985L=0
1097 IF Y=1985P=S-3075
1100 IF S>3440Y=1986
1105 IF Y=1986L=0
1107 IF Y=1986P=S-3440
1110 IF S>3805Y=1987
1115 IF Y=1987L=0
1117 IF Y=1987P=S-3805
1120 IF S>4170Y=1988
1125 IF Y=1988L=1
1127 IF Y=1988P=S-4170
1130 IF S>4536Y=1989
1135 IF Y=1989L=0
1137 IF Y=1989P=S-4536
1140 IF S>4901Y=1990
1145 IF Y=1990L=0
1147 IF Y=1990P=S-4901
1150 IF S>5266Y=1991
1155 IF Y=1991L=0
1157 IF Y=1991P=S-5266
1160 IF S>5631Y=1992
1165 IF Y=1992L=1
1167 IF Y=1992P=S-5631
1170 IF S>5997Y=1993
1175 IF Y=1993L=0
1177 IF Y=1993P=S-5997
1180 IF S>6362Y=1994
1185 IF Y=1994L=0
1187 IF Y=1994P=S-6362
1190 IF S>6727Y=1995
1195 IF Y=1995L=0
1197 IF Y=1995P=S-6727
1200 IF S>7092Y=1996
1205 IF Y=1996L=1
1207 IF Y=1996P=S-7092
1210 IF S>7458Y=1997
1215 IF Y=1997L=0
1217 IF Y=1997P=S-7458
1220 IF S>7823Y=1998
1225 IF Y=1998L=0
1227 IF Y=1998P=S-7823
1230 IF S>8188Y=1999
1235 IF Y=1999L=0
1237 IF Y=1999P=S-8188
1240 IF S>8553Y=2000
1245 IF Y=2000L=1
1247 IF Y=2000P=S-8553
1250 IF S>8919Y=2001
1255 IF Y=2001L=0
1257 IF Y=2001P=S-8919
1260 IF S>9284Y=2002
1265 IF Y=2002L=0
1267 IF Y=2002P=S-9284
1270 IF S>9649Y=2003
1275 IF Y=2003L=0
1277 IF Y=2003P=S-9649
1280 IF S>10014Y=2004
1285 IF Y=2004L=1
1287 IF Y=2004P=S-10014
1290 IF S>10380Y=2005
1295 IF Y=2005L=0
1297 IF Y=2005P=S-10380
1300 IF S>10745Y=2006
1305 IF Y=2006L=0
1307 IF Y=2006P=S-10745
1310 IF S>11110Y=2007
1315 IF Y=2007L=0
1317 IF Y=2007P=S-11110
1320 IF S>11475Y=2008
1325 IF Y=2008L=1
1327 IF Y=2008P=S-11475
1330 IF S>11841Y=2009
1335 IF Y=2009L=0
1337 IF Y=2009P=S-11841
1340 IF S>12206Y=2010
1345 IF Y=2010L=0
1347 IF Y=2010P=S-12206
1350 IF S>12571Y=2011
1355 IF Y=2011L=0
1357 IF Y=2011P=S-12571
1360 IF S>12936Y=2012
1365 IF Y=2012L=1
1367 IF Y=2012P=S-12936
1370 IF S>13302Y=2013
1375 IF Y=2013L=0
1377 IF Y=2013P=S-13302
1380 IF S>13667Y=2014
1385 IF Y=2014L=0
1387 IF Y=2014P=S-13667
1390 IF S>14032Y=2015
1395 IF Y=2015L=0
1397 IF Y=2015P=S-14032
1400 IF S>14397Y=2016
1405 IF Y=2016L=1
1407 IF Y=2016P=S-14397
1410 IF S>14763Y=2017
1415 IF Y=2017L=0
1417 IF Y=2017P=S-14763
1420 IF S>15128Y=2018
1425 IF Y=2018L=0
1427 IF Y=2018P=S-15128
1430 IF S>15493Y=2019
1435 IF Y=2019L=0
1437 IF Y=2019P=S-15493
1440 IF S>15858Y=2020
1445 IF Y=2020L=1
1447 IF Y=2020P=S-15858
1450 IF S>16224Y=2021
1455 IF Y=2021L=0
1457 IF Y=2021P=S-16224
1460 IF S>16589Y=2022
1465 IF Y=2022L=0
1467 IF Y=2022P=S-16589
1470 IF S>16954Y=2023
1475 IF Y=2023L=0
1477 IF Y=2023P=S-16954
1480 IF S>17319Y=2024
1485 IF Y=2024L=1
1487 IF Y=2024P=S-17319
1490 IF S>17685Y=2025
1495 IF Y=2025L=0
1497 IF Y=2025P=S-17685
1500 IF S>18050Y=2026
1505 IF Y=2026L=0
1507 IF Y=2026P=S-18050
1510 IF S>18415Y=2027
1515 IF Y=2027L=0
1517 IF Y=2027P=S-18415
1520 IF S>18780Y=2028
1525 IF Y=2028L=1
1527 IF Y=2028P=S-18780
1530 IF S>19146Y=2029
1535 IF Y=2029L=0
1537 IF Y=2029P=S-19146
1540 IF S>19511Y=2030
1545 IF Y=2030L=0
1547 IF Y=2030P=S-19511
1550 IF S>19876Y=2031
1555 IF Y=2031L=0
1557 IF Y=2031P=S-19876
1560 IF S>20241Y=2032
1565 IF Y=2032L=1
1567 IF Y=2032P=S-20241
1570 IF S>20607Y=2033
1575 IF Y=2033L=0
1577 IF Y=2033P=S-20607
1580 IF S>20972Y=2034
1585 IF Y=2034L=0
1587 IF Y=2034P=S-20972
1590 IF S>21337Y=2035
1595 IF Y=2035L=0
1597 IF Y=2035P=S-21337
1600 IF S>21702Y=2036
1605 IF Y=2036L=1
1607 IF Y=2036P=S-21702
1610 IF S>22068Y=2037
1615 IF Y=2037L=0
1617 IF Y=2037P=S-22068
1620 IF S>22433Y=2038
1625 IF Y=2038L=0
1627 IF Y=2038P=S-22433
1630 IF S>22798Y=2039
1635 IF Y=2039L=0
1637 IF Y=2039P=S-22798
1640 IF S>23163Y=2040
1645 IF Y=2040L=1
1647 IF Y=2040P=S-23163
1650 IF S>23529Y=2041
1655 IF Y=2041L=0
1657 IF Y=2041P=S-23529
1660 IF S>23894Y=2042
1665 IF Y=2042L=0
1667 IF Y=2042P=S-23894
1670 IF S>24259Y=2043
1675 IF Y=2043L=0
1677 IF Y=2043P=S-24259
1680 IF S>24624Y=2044
1685 IF Y=2044L=1
1687 IF Y=2044P=S-24624
1690 IF S>24990Y=2045
1695 IF Y=2045L=0
1697 IF Y=2045P=S-24990
1700 IF S>25355Y=2046
1705 IF Y=2046L=0
1707 IF Y=2046P=S-25355
1710 IF S>25720Y=2047
1715 IF Y=2047L=0
1717 IF Y=2047P=S-25720
1720 IF S>26085Y=2048
1725 IF Y=2048L=1
1727 IF Y=2048P=S-26085
1730 IF S>26451Y=2049
1735 IF Y=2049L=0
1737 IF Y=2049P=S-26451
1740 IF S>26816Y=2050
1745 IF Y=2050L=0
1747 IF Y=2050P=S-26816
1750 IF S>27181Y=2051
1755 IF Y=2051L=0
1757 IF Y=2051P=S-27181
1760 IF S>27546Y=2052
1765 IF Y=2052L=1
1767 IF Y=2052P=S-27546
1770 IF S>27912Y=2053
1775 IF Y=2053L=0
1777 IF Y=2053P=S-27912
1780 IF S>28277Y=2054
1785 IF Y=2054L=0
1787 IF Y=2054P=S-28277
1790 IF S>28642Y=2055
1795 IF Y=2055L=0
1797 IF Y=2055P=S-28642
1800 IF S>29007Y=2056
1805 IF Y=2056L=1
1807 IF Y=2056P=S-29007
1810 IF S>29373Y=2057
1815 IF Y=2057L=0
1817 IF Y=2057P=S-29373
1820 IF S>29738Y=2058
1825 IF Y=2058L=0
1827 IF Y=2058P=S-29738
1830 IF S>30103Y=2059
1835 IF Y=2059L=0
1837 IF Y=2059P=S-30103
1840 IF S>30468Y=2060
1845 IF Y=2060L=1
1847 IF Y=2060P=S-30468
1850 IF S>30834Y=2061
1855 IF Y=2061L=0
1857 IF Y=2061P=S-30834
1860 IF S>31199Y=2062
1865 IF Y=2062L=0
1867 IF Y=2062P=S-31199
1870 IF S>31564Y=2063
1875 IF Y=2063L=0
1877 IF Y=2063P=S-31564
1880 IF S>31929Y=2064
1885 IF Y=2064L=1
1887 IF Y=2064P=S-31929
1890 IF S>32295Y=2065
1895 IF Y=2065L=0
1897 IF Y=2065P=S-32295
2000 RETURN
3000 IF Y=1976 L=3
3010 IF L=0 GOSUB 4000
3020 IF L=1 GOSUB 5000
3030 IF L=3 GOSUB 6000
3040 RETURN
4000 IF P>0M=1
4010 IF P>0D=P
4020 IF P>31M=2
4030 IF P>31D=P-31
4040 IF P>59M=3
4050 IF P>59D=P-59
4060 IF P>90M=4
4070 IF P>90D=P-90
4080 IF P>120M=5
4090 IF P>120D=P-120
4100 IF P>151M=6
4110 IF P>151D=P-151
4120 IF P>181M=7
4130 IF P>181D=P-181
4140 IF P>212M=8
4150 IF P>212D=P-212
4160 IF P>243M=9
4170 IF P>243D=P-243
4180 IF P>273M=10
4190 IF P>273D=P-273
4200 IF P>304M=11
4210 IF P>304D=P-304
4220 IF P>334M=12
4230 IF P>334D=P-334
4900 RETURN
5000 IF P>0M=1
5010 IF P>0D=P
5020 IF P>31M=2
5030 IF P>31D=P-31
5040 IF P>60M=3
5050 IF P>60D=P-60
5060 IF P>91M=4
5070 IF P>91D=P-91
5080 IF P>121M=5
5090 IF P>121D=P-121
5100 IF P>152M=6
5110 IF P>152D=P-152
5120 IF P>182M=7
5130 IF P>182D=P-182
5140 IF P>213M=8
5150 IF P>213D=P-213
5160 IF P>244M=9
5170 IF P>244D=P-244
5180 IF P>274M=10
5190 IF P>274D=P-274
5200 IF P>305M=11
5210 IF P>305D=P-305
5220 IF P>335M=12
5230 IF P>335D=P-335
5240 RETURN
6000 RETURN
0
Running 40 year old software
It is amazing to be able to run software (code) that is 40 years old. I was able to run code that I have not run since I was a kid in 1978 on my then recently built Netronics ELF kit.
I have mentioned this emulator before --> http://www.elf-emulation.com/ but recently decided to try to get it to run the PIXIE code the was published in Popular Electronic July 1977 issue. The emulator for the COSMAC 1802 CPU can also emulate the CDP1861 PIXIE video chip too. I used the original articles code and created a rom file and loaded it in the emulator and it worked! Below is the image generated and what was display on the TV of the original ELF. The random looking blocks at the top of the image are actually the code that is running to display the image. The PIXIE chip is displaying 256 bytes of memory arranged 8 bytes wide by 32 bytes high, with each spot or pixel being 1 bit. Hence a 64 pixel by 256 pixel image. The ELF only had 256 bytes of memory. If you had more memory you could assign a specific memory space just for the video image and another for the code.
I remember keying that code into the ELF II above via the hex keypad and being totally amazed when I saw it on my TV I had connected. I then later devised my only images to be displayed.
I have mentioned this emulator before --> http://www.elf-emulation.com/ but recently decided to try to get it to run the PIXIE code the was published in Popular Electronic July 1977 issue. The emulator for the COSMAC 1802 CPU can also emulate the CDP1861 PIXIE video chip too. I used the original articles code and created a rom file and loaded it in the emulator and it worked! Below is the image generated and what was display on the TV of the original ELF. The random looking blocks at the top of the image are actually the code that is running to display the image. The PIXIE chip is displaying 256 bytes of memory arranged 8 bytes wide by 32 bytes high, with each spot or pixel being 1 bit. Hence a 64 pixel by 256 pixel image. The ELF only had 256 bytes of memory. If you had more memory you could assign a specific memory space just for the video image and another for the code.
elf.exe -r pixie.rom -a -1861
I remember keying that code into the ELF II above via the hex keypad and being totally amazed when I saw it on my TV I had connected. I then later devised my only images to be displayed.