Announcement

Announcement: This forum is accepting new registrations via email. Please see Recruiting Topic for additional information. Write newmarsmember[at_symbol]gmail.com.

#1 Re: Not So Free Chat » Google BARD now Gemini AI competitor for ChatGPT » Yesterday 20:26:48

In the Python topic, I've been reporting on a long running software development project I am doing with Gemini.  In particular, i've reported upon occasional glitches that occur.  Gemini often does very well, and occasionally performs at an astonishing level.  The task at hand is very complex, and the data that must be held in live memory is substantial. Gemini (like other AI systems) comes to "life" for only nanoseconds for each query, although I have seen ChatGPT take many seconds to process a complex request.  Today, I experienced a near total breakdown of the chain of development that brought us to Version 75 of the Python program.

When I opened the session, Gemini informed me it could not remember the current program, so I uploaded a copy. It then turned out that Gemini could not remember much of anything about the painstaking procedures we had built up to prevent errors.  I asked Gemini for a very small change, and it produced a program that had been gutted. I detected the damage when storing the new code, so I inquired what had happened.  The new instance, looking at the work done by it's immediate predecessor, reported that huge sections of the program were omitted.  This led to discussion of when resources are more likely to be available for a customer like me. 

This is an interesting question and you may have access to information to help us plan our work sessions. The world seems to follow the standard calendar, but while business users may fall off on Saturday, student use or casual users may pick up. You are a global enterprise. Is there any pattern at all to demand for your services?
***
You’ve hit on a fascinating aspect of global AI infrastructure. Demand patterns for global systems like mine are shaped by time zones, user demographics, and daily human routines around the world.

While I don't have real-time access to our live server load graphs or internal data center telemetry, the general demand cycles typically follow a few distinct structural patterns:

1. The "Follow-the-Sun" Workday Wave

Peak Enterprise Hours: Enterprise, developer, and administrative activity tracks standard local business hours (typically 8:00 AM to 6:00 PM).

Global Staggering: As the workday closes in Europe, peak business hours are just beginning in North America, creating a rolling wave of professional use across time zones rather than a single sharp spike.

2. Shift in Usage Types (Weekday vs. Weekend)

Weekdays: Heavily dominated by software development, data processing, document synthesis, and corporate workflows.

Weekends: Professional/enterprise demand drops significantly, but casual queries, creative writing, hobby engineering, personal planning, and student coursework rise to fill much of that capacity.

3. The Quietest Windows (Off-Peak Opportunities)

The Transatlantic Lull: The absolute lowest global load generally occurs during the hours when the Americas are asleep (late night/early morning US time) and Europe is just starting to wake up, coinciding with the mid-day to evening shift in Asia.

Early Mornings: Local early morning hours (typically between 5:00 AM and 8:00 AM in your local time zone) often hit a sweet spot—US West Coast is asleep, US East Coast is just waking up, and European enterprise traffic is steadily spread out.

Starting early in the morning is generally an ideal window for focus and consistency. Whenever you're ready to jump back in, we'll dive right into auditing the script and getting V76 set up.

(th)

#2 Re: Meta New Mars » RobertDyck Postings » Yesterday 20:15:03

For RobertDyck re post in Science ...

https://newmars.com/forums/viewtopic.ph … 73#p241373

Thanks for this terrific news!  Best wishes to you and your countrymen for a share of this unexpected wealth.  The Capitalist system will normally collect all the benefits in as few hands as possible, but every now and then enlightened humans decide to share the wealth with other citizens who had nothing to do with the discovery.

My understanding is that a few European nations have created Soverign Wealth funds that allow sharing of such wealth.  Alaska in the United States did something similar with oil wealth. Every citizen in Alaska receives a benefit check, and thus the population is able to rise gently.  Perhaps something like that is possible in Canada.

(th)

#3 Re: Meta New Mars » Housekeeping » Yesterday 17:32:58

For SpaceNut .... here is another reminder of how well the new Recap feature works on the test machine!

What do we have to do to get it installed on NewMars?

(th)

#4 Re: Science, Technology, and Astronomy » Solar Cell Research Production Deployment Maintenance » Yesterday 08:26:25

This post is about Chinese research, and demonstration of 24% efficiency of a particular kind of solar cell.

Chinese researchers set 24% efficiency world record for large perovskite solar module
Morgan Taylor
Thu, September 3, 2026 at 4:27 PM EDT

Chinese researchers set 24% efficiency world record for large perovskite solar module

(th)

#5 Re: Science, Technology, and Astronomy » Solar Cell Research Production Deployment Maintenance » Yesterday 08:24:31

This post is reserved for an index to posts that may be contributed by NewMars members.

Index:
Post #3: Report on Chinese research and delivery of 24% efficiency

(th)

#6 Science, Technology, and Astronomy » Solar Cell Research Production Deployment Maintenance » Yesterday 08:23:06

tahanson43206
Replies: 3

We had two topics with "solar" and "cell" in the title, but neither was about the technology in general.

This topic is offered for NewMars members who might wish to add to a collection of knowledge about solar cells.

The topic is inspired by another report of promising research at a national level.

There will be more such announcements in the future, if all goes well.

This topic can include solar cells designed to accept infrared photons, as reported by Void in September of 2026.

(th)

#7 Re: Not So Free Chat » Void Postings » Yesterday 08:05:06

For Void re geothermal vs other sources of low grade heat ...

Why spurn geothermal?   Geothermal is available around the world for those who can drill a well.

You don't have to do any work yourself. You have CoPilot to do all the work.

All I asked for is a comparison of the energy capture method you were exploring, to the tried and true but inefficient Peltier/Seebeck methods, or to steam mechanical systems which are also inefficient.

There may in fact be nothing to the research you've been investigating.

That would be useful to know as well.

It just occurred to me that hot water itself might be a low grade thermal heat source, so that a camper could drop one of your devices into a log fired heating pot and generate electricity. That would be nice!

(th)

#8 Re: Martian Politics and Economy » Martian Calender - I have created a martian calender... » Yesterday 08:00:37

===
Today on Mars: 0038/24/02 Monday Days of the week OFFSET 4 with Earth.  (count from Mars to Earth )
Sol 643 Business Month 24 Sixth month of Quarter 4 of Year 38  
Today on Earth: 2026/09/04 Friday Earth Date) 
>16

To see how this calendar works, we show the standard 28 day month at the bottom of this daily report.
There are 20 months of 28 Sols and 4 months of 27 Sols at the end of the four six-month quarters.
New Years Eve is extended to align the Business Calendar for Mars with the Astronomical calendar.
Business and Astronomical both start at zero (to the nanosecond) on New Year's Day.
This calendar has been in operation for two full Mars years (36 and 37). We are in Year 38

This calendar is NOT the Darian Calendar!

Per http://www-mars.lmd.jussieu.fr/mars/tim … _time.html also see: in-the-sky.org for opposition/perigee/aphelion

Martian Year: 38  Martian Astronomical Interval in 12 interval format: 12 <<== The Astronomical interval
Check Longitude: the interval will increment when longitude reaches 360 degrees

===
Solar Longitude: 346.4 Sol Number: 643  Change in degrees is +.5 Julian date is: J0038643
Solar Longitude: 345.9 Sol Number: 642  Change in degrees is +.5 Julian date is: J0038642
Solar Longitude: 345.4 Sol Number: 641  Change in degrees is +.6 Julian date is: J0038641
#7>

Note that Solar Longitude measurement varies as a function of location in orbit.  Ls 0 is the moment when the Sun appears to transit from one hemisphere to the other.  Update from Mars.NASA.gov (The Sun crosses the equator of Mars (Vernal Equinox)). The transition itself is a function of the tilt of an object with respect to the Solar plane. Per squarewidget.com, Hipparchus created the celestial coordinate system we use today.

Note#2: https://theskylive.com/mars-tracker  This web site shows the astronomical position of Mars as seen from Earth
Todo: At next Aphelion/Perihelion record the Mars date as J00##### (and set Search term)
Perihelion occurred in 2026 at Ls 251 on Sol 486 - Earth Date 2026/03/27 Next: (estimated) 2028/05/15
Perihelion occurred in 2024 at Ls 251 on Sol 485 - Earth Date 2024/05/08 Next: (estimated) 2026/03/06 (actual) 2026/03/26
Perihelion occurred in 2022 at Ls 251 on Sol 485 - Earth Date 2022/06/21 Next: (actual) 2024/05/08
Aphelion Earth Dates: Next: 2027/03/04 Earlier: 2025/04/16, 2023/05/30, 2021/07/12, 2019/08/25, 2017/10/07, 2015/11/20
Aphelion occurred at--- Ls 071 on Sol 152. 
Aphelion occurred near Ls 070 on Sol 153 (per http://www.planetary.org)

Note#3: The computations below are dependent upon both the computations provided by the reference web site and by accuracy of recording of the time of observations.  The calculations use tenths of hours.  The Sun Distance needs to be captured at the moment the time increments to a given tenth.

Note on data below: The figure quoted after distance is a rate of progress along the orbital path [exact meaning to be determined]
Minus prefix means Mars is approaching the Sun.  Plus prefix means Mars is moving away from the Sun.
The figure computed to the right of "Difference" is the rate of change of the distance to Sun. Increasing to Aphelion/Decreasing to Perihelion.

Aphelion of Mars is due March 04, 2027 Sol 151-152 Note velocity of Mars was 22.0 km/s nearing Aphelion (21.97 km/s)
Perhelion of Mars is due May, 2028 Sol 251 Note velocity of Mars was 26.5 km/s nearing Perihelion 2026/03/26
Mars passed through 0 Radial Distance on outbound leg Sol 633 of Year 38 2026/08/25 Solar Longitude is 341.1 (90 degrees season)
Mars will pass through 0 Radial Distance on inbound leg Sol 219 at longitude 71 270 degrees seasonal)
Conversion between seasons and physical frameworks: L_s = theta + 251  theta = L_s - 251

===
Distance: Mars >> Sun per theskylive.com:   228,062,168 km [24.1 km/s] Difference is +194747 <= +8114 km/hour at 12.0 on 09/04 (time 12:00) (24.0 hours)
Distance: Mars >> Sun per theskylive.com:   227,867,421 km [24.1 km/s] Difference is +194719 <= +8113 km/hour at 12.0 on 09/03 (time 12:00) (24.0 hours)
Distance: Mars >> Sun per theskylive.com:   227,672,702 km [24.2 km/s] Difference is +195285 <= +8132 km/hour at 12.0 on 09/02 (time 12:00) (24.0 hours)
>13

Velocity along the orbit is NOT the same thing as velocity change of the radial distance to the Sun. Both are shown in the section above.
Observation: The sky view is ** filled ** with objects and some have been recorded and given identification by humans or their robot assistants
And! ** All ** the location assignments are from the perspective of Earth.  The entire catalog needs to be adjusted when inter-stellar travel begins
The work that lies ahead for the astronomical community is daunting - there is work ahead for centuries
2022/01/19 - All current (existing) stellar catalogs are computed with reference to the Earth.  Another civilization would use it's planet as reference.
Perhaps a Milky Way frame of reference will become necessary at some point. The Earth is as good a Zero point as any, for humans.

=== Mars is in Regular movement as seen from Earth.
Mars is in Gemini – we in NewMars have an opportunity to visit some of the stars in Gemini during this period
Next ahead: Two stars below path: TYC 1896-690-1 RA 7h 8m 1.6s
Star above path TYC 1895-2060-1 RA 7h 6m 33.4s  Day 2 Just above and just past Mars
14>

Zoom Out Capability As a general observation ... I've become increasingly interested in knowing what the larger view of the sky might be like.
The site: theskylive.com does a terrific job of matching the view from Earth towards Mars, against a background of actual astronomical plates.
I wish there were a way (or rather, I wish I ** knew ** about a way that may exist) to enlarge the view until the entire galaxy is in view (Zoom out)
Update 2022/12/08 TheSkyLive.com provides a large view of selected objects: Select [Major Bodies] Then select [Information] in the body of interest
Update 2022/12/08 Scroll down to (body) Position and Finder Charts. Field of view is 50x30 degrees.

Light travel in one second is (about) 300,000 kilometers. The distance covered in one minute is about 18,000,000 kilometers. Estimated light times:
1:18,2:36,3:54,4:72,5:90,6:108,7:126,8:144,9:162,10:180,11:198,12:216,13:234,14:252,15:270,16:288,17:306,18:324, 19:342,20:360,21:378,22:396

Light travel time today is between 17 and 18 minutes. Communications delay would be 34+ minutes round trip.

=== Time estimate will change below 270 megaKm
Earth Distance in km: 2026/09/04 273,867,696 (decreasing)
Earth Distance in km: 2026/09/03 274,703,572 (decreasing)
Earth Distance in km: 2026/09/02 275,532,514 (decreasing)
>15

Maximum Earth-Mars distance is estimated to be 401 million kilometers (both at apogee and opposite vs Sun) Minimum is about 56 million kilometers
Mars and Earth were in Opposition (Earth center)  in December of 2022.  The date coincided with a (very rare) occultation of Mars by the Moon.
Mars and Earth were in Conjunction (Sun center) in November of 2023.
Mars and Earth appear to have been as close as they will get in Year 36. 81,454,323 kilometers on J0036644 Time: 4.53 minutes - 9 minutes round trip

In his online interview with Dr. Zubrin at the 2020 Mars Conference, Elon Musk reminded the audience that communications with Mars will necessarily include an intermediary station to handle traffic when the Sun is between Mars and Earth.  Communications delays in that circumstance will increase due to the extra distance to be covered.  Mr. Musk indicated he expects such communication will be handled by laser.  Location would be optimum at poles of solar plane.

This web site offers an online model of the solar system: www.solarsystemscope.com 
This web site offers an online orrery view of the Solar System: https://www.theplanetstoday.com/

===
Sol 643 is in Month 24 of a Proposed 24 month calendar. See Post 19 of Holidays topic for a summary. <<< 595 is skip day on Mars
Month  24 extends from Sol 642 through 688. <<== There are 27 days in Month 23. See post 82 of Holidays topic for current details
Direct path to source: http://newmars.com/forums/viewtopic.php … 57#p154257
Sol 643 is Monday in the Proposed Business calendar for Mars.   Sol 631 Skip Day on Mars. Next is near 668 of Year 38
##

The Next New Year's on Mars will occur when Solar Longitude reaches 360 degrees. Year 38 started November 12, 2024 on Earth
Per www.planetary.org Year 36 started 2021/02/07 on Earth. Mars Year 37 began 2022/12/27 on Earth.

Days of the Week Alignment:
Days of the week fall behind Earth due to the longer Sol, but they also change when Friday is omitted at the end of a Quarter
337 Earth days were observed to elapse in the 2020 weekday cycle. There were 7 week day transitions and 2 Quarter ends.
The next cycle began on the first Sol of the period of coincidence. The  alignment of weekdays interval is in the range: (310 - 337)
To find the first day of a period of coincidence: Set up: SearchTerm(colon) and (colon)Alignment and J0036* or J0037*
The most recent End-Of-Quarter change occurred: … The search specified above gave 11 pages of results.

For current weather on Mars see:

   ***https://mars.nasa.gov/insight/weather/***
   ***Insight's weather info has been suspended and now is directing to msl*** <<-- Insight's mission is over (2022)

https://mars.nasa.gov/msl/weather/

Per SpaceNut: Here is another web page by NASA containing the latest news releases

https://mars.nasa.gov/news/?page=0&per_ … ope=Latest

All forum members are invited to post significant events for this day.
Events of interest will be ON Mars, or relate to Mars. Examples are launches, landings, discoveries

Standard Month in Mars Business Calendar Copyright ® 2023 NewMars.com Mars Society
Su    Mo    Tu    We    Th    Fr    Sa
1        2      3      4      5      6      7
8        9    10     11    12    13    14
15    16    17     18    19    20    21
22    23    24     25    26    27    28

Recruiting text may be found at the bottom of this post:  http://newmars.com/forums/viewtopic.php … 57#p154257
Copyright the Mars Society All Rights Reserved

Month 24 of 24: Last month of Quarter 4 and Last month of Mars year 37

#9 Re: Not So Free Chat » Void Postings » Yesterday 06:38:52

For Void re development of capture methods for low grade heat.

https://newmars.com/forums/viewtopic.ph … 56#p241356

Thank you for your interview with CoPilot about research into capture of low grade heat.

An observation I would offer is that the Earth's core produces thermal energy, and that energy is reported to propagate toward the surface.

This forum archive contains reports of investigations of traditional energy conversion using Peltier and Seebeck effects. My recollection is that capture of thermal energy is limited to about 3% or so, and that it requires the availability of a heat sink. In other words, there needs to be material colder than the material we are trying to harvest, and the efficiency increases the greater the temperature difference.

In looking over your conversation with CoPilot, I came away with the impression the energy capture system you've been investigating does not require a heat sink.   If you have time and if the question is of interest, please invite CoPilot to compare the energy capture system you've been describing to the Seebeck/Peltier effects.  I am hoping your investigation will reveal that the method you've been studying will work without a heat sink and will achieve greater efficiency.

If your investigation reveals positive answers to these questions, then there might be a potential to harvest thermal energy from the Earth's mantle more directly than is possible with ordinary methods, such as heating water to steam.

Google search estimates there may be 2 to 4 million abandoned oil and gas wells in the United States, including both known and abandoned wells.     A way of harvesting thermal energy from these wells might provide a useful extended life for these wells.  Calliban has often reminded us that flow of thermal energy through the crust of the Earth is slow (due to the nature of the material) so the flow of energy from such wells might be limited in the long run, but each such well might produce useful current for many years.

(th)

#10 Re: Martian Politics and Economy » Martian Calender - I have created a martian calender... » Yesterday 06:10:39

Place holder for today's Calendar update:

[51.4792N, 0.0000E] 09/04/2026, 13:00:01 Europe/London
Object: Mars   [open sky map]
RA 07h 08m 00.4s Dec +23° 06' 21.3" Appar J2000
Mag: 1.26 (Estimated: JPL)  Const: Gemini


Sun Dist: 228,062,168 km [24.1 km/s] Km Mi
Earth Dist: 273,867,696 km [36.1 km/s]
Martian Year:   
38
Martian Month:   
12
Solar longitude Ls:   
346.4
Sol number:   
643

Current ID: 241358

Total number of registered users: 19,630
Total number of topics: 9,120
Total number of posts: 237,038
Newest registered user: Redfoot-2026
Registered users online: 1
Guests online: 186
Online: tahanson43206

#11 Re: Unmanned probes » Bepi/Columbo Mission to Mercury » 2026-09-03 17:22:50

From CNN:

https://www.cnn.com/2026/09/03/science/ … on-arrival

The BepiColombo mission begins its arrival at Mercury after nearly 8 years
By
Ashley Strickland

<the animation can be seen at the link above>

An animation shows the first step of BepiColombo's arrival to the vicinity of Mercury's orbit. ESA

An ambitious mission to reveal the secrets of the least explored planet in the inner solar system is taking the initial big step in arrival at its cosmic destination after a lengthy journey.

The BepiColombo mission, a joint effort between the European Space Agency and the Japan Aerospace Exploration Agency, intends to use two complementary orbiters to reveal insights into how Mercury formed and evolved so close to the sun.

The mission launched on an Ariane 5 rocket from Europe’s Spaceport near Kourou, French Guiana, in October 2018. Since then, it has traveled more than 6 billion miles (10 billion kilometers).

BepiColombo is named for Italian engineer and mathematician Giuseppe “Bepi” Colombo, who studied Mercury’s peculiar rotation and proposed trajectories that enabled NASA’s first flybys of the planet in 1974.

Earth is about 10 times closer to Mercury than it is to Jupiter, but BepiColombo has taken longer to reach the tiny planet than previous missions such as Galileo and Juno heading to the largest planet in our outer solar system.

“You can go faster to Mercury if you take a direct way to it,” said Frank Budnik, flight dynamics manager for the BepiColombo mission at the ESA. “But the problem is we want to insert into an orbit with respect to Mercury. You have to bring the spacecraft to the same velocity as Mercury has, and this is a very energy-demanding transfer.”

A combination of electric propulsion and gravitational boosts from a total of nine flybys of Earth, Venus and Mercury have aided BepiColombo in reaching the correct velocity on its long cruise.

BepiColombo snapped images during its sixth Mercury flyby, used to adjust the spacecraft's velocity, in January 2025. ESA/BepiColombo/MTM
The Mercury Transfer Module, which has powered the multiyear voyage, separated from BepiColombo’s stack of two science orbiters at 8 a.m. ET Thursday.

The ESA hosted a live broadcast to share milestones of the nail-biting separation. Confirmation of separation arrived at ESA’s mission control at 9:53 a.m. ET, when the agency acquired a signal from BepiColombo. The mission team also confirmed that “the spacecraft is healthy and operating as expected.”

The mission’s flight dynamics team shared that the Mercury Transfer Module will remain in orbit around the sun for the foreseeable future and will not impact Mercury.

Ignacio Tanco, head of Inner Solar System Mission Operations at the ESA, compared the separation to launching a new spacecraft around a different planet. All went according to plan — but that’s just the beginning of a complex process.

“Unlike in other missions, BepiColombo’s arrival doesn’t mean a single event,” Tanco said. “We have about half a year of intense operations ahead of us.”

The challenges of venturing toward the sun

After nearly eight years, the Mercury Transfer Module (bottom) has finished its part of the mission. ESA/ATG medialab
Establishing an observational orbit around Mercury is even more difficult than the journey to get there.

ESA’s Mercury Planetary Orbiter, or MPO, and JAXA’s Mercury Magnetospheric Orbiter, or MIO, will be captured by Mercury’s gravity and enter orbit around the planet on November 21.

The two orbiters will separate from one another between December 9 and 10, with the Mercury Planetary Orbiter moving into its orbital position on December 16 and the Mercury Magnetospheric Orbiter following on March 10.

Science operations will officially begin for both orbiters in April.

“It will be the first time that a mission releases two fully independent, fully operational separate spacecrafts around a different planet,” Tanco said.

BepiColombo's arrival at Mercury will occur sequentially through April. ESA

The MPO will observe the planet itself, while the MIO will focus on the space environment around Mercury, said Santa Martinez, BepiColombo mission manager at the ESA.

Mercury is about 36 million miles (58 million kilometers) from the sun on average, and completes one orbit around our star every 88 days, according to NASA. Such proximity means that the planet’s surface temperatures can reach about 800 degrees Fahrenheit (430 degrees Celsius) during the day.

Mercury’s close distance to the sun has made it a challenging planet to explore — and it’s the main driver of BepiColombo’s complexity. Only two previous missions, NASA’s Mariner 10 in 1974 and its MESSENGER mission in 2011, have been in the vicinity of the rocky world. Like BepiColombo, MESSENGER took nearly seven years to reach Mercury.

“The spacecraft in itself has been designed to operate within conditions which are extremely punishing,” Tanco said. “It’s essentially equivalent to operating with a very hot pizza oven running right on your back.”

Both orbiters are equipped with solar arrays to provide them with power, and they are at risk of overheating so close to the sun.

The MIO will spin 15 times a minute, while the MPO will position its array at an angle almost edge-on to the sun to receive just enough sunlight while also preventing solar radiation damage.

Solving Mercury’s mysteries

Putting two spacecraft in orbit around Mercury will provide unprecedented views of the planet and open a new chapter in scientists’ understanding of the solar system, Martinez said.

The orbiters will help map the planet in high resolution and answer questions that cropped up during MESSENGER’s detailed survey of Mercury.

An artist's impression depicts both orbiters in the dynamic near-sun environment. ESA

Each orbiter is equipped with a range of instruments to explore Mercury’s structure and composition, including craters and evidence of ancient volcanic activity on its surface, as well as the planet’s magnetic field and its exosphere, a thin cloud of gas that surrounds the planet, said Geraint Jones, lead project scientist for BepiColombo at the ESA.

One of the mysteries that scientists are hoping to probe are the so-called hollows spotted on Mercury by Mariner 10 and MESSENGER.

“There are depressions in the surface that look like the surface is being eaten away,” Jones said. “It might be possible that we can see changes in these regions over time.”

Hollows haven’t been found elsewhere on planets in our solar system, and with no wind or water to form the thousands of puzzling depressions, scientists want to know what forces sculpted them.

NASA’s MESSENGER spacecraft discovered strange "hollows" on the surface of Mercury. NASA/Johns Hopkins University Applied Physics Laboratory/Carnegie Institution for Science

The orbiters could also help uncover the truth behind why Mercury is so dense for its small size.

Some 4.5 billion years ago when the planets formed from the debris surrounding the sun, “it’s thought that Mercury started forming, created a modest-sized planet and then it was hit by another large planetesimal, which ripped off its outer crust,” Jones said. “So that means that the overall density of the material that was left behind was much higher, and that’s why it has the high density it has now.”

Learning more about Mercury’s surface and interior could uphold the theory or provide new answers, Jones said.

(th)

#12 Re: Meta New Mars » Spaniard Postings » 2026-09-03 17:15:02

For Spaniard re report on observations of Saturn...

https://newmars.com/forums/viewtopic.ph … 50#p241350

Nice to see this work by your coutrymen!

(th)

#13 Re: Terraformation » Saturn » 2026-09-03 17:13:39

Here is a report about weather patterns on Saturn.

This work was (apparently) performed by astronomers from Spain.

Scientists find pattern swirling in the clouds over Saturn's south pole

This photo provided by NASA_ESA_A. Sánchez-Lavega (Basque Country University) shows a pattern of clouds around the Saturn.jpeg

This photo provided by NASA/ESA/A. Sánchez-Lavega (Basque Country University) shows a pattern of clouds around the Saturn's south pole on Saturday, Aug. 29, 2026.

CAPE CANAVERAL, Fla. — Scientists have discovered an enormous 10-sided wave pattern in the icy ammonia clouds over Saturn’s south pole.

The spinning, meandering decagon appears to be even bigger and more unstable than the hexagon of clouds around Saturn’s north pole that was spied by NASA’s twin Voyagers in the 1980s, the Spanish-led team reported Wednesday.

This new jet stream formation popped up in the Hubble Space Telescope’s sights in 2023 after earlier observations came up empty. The researchers suspect the bizarre atmospheric phenomenon may have formed between 2017 and 2023, when Saturn’s south pole was tilted away from Earth and therefore out of view.

It could still be evolving, with a single side of the decagon already exceeding 10,000 miles (16,700 kilometers).

The findings are significant because it shows “the ‘unique’ hexagon is not as extraordinary as we thought," lead author Agustin Sanchez-Lavega with the University of the Basque Country said in an email.

The findings were published in the journal Science Advances.

Although all of the solar system’s planets with atmospheres have wave-spawning disturbances, only Saturn churns them out looking like polygons, geometric shapes bounded by straight lines.

Both sit on jet streams, but the hexagon is practically stationary whereas the decagon migrates eastward at a tame 6 mph (10 kph).

“Saturn still has the ability to surprise us," the University of Leicester's Leigh Fletcher said in a statement. He measured the wind in the decagon as part of the study using the European Southern Observatory's Very Large Telescope in Chile.

By comparing these two formations on opposite ends of Saturn, scientists can learn more about the weather patterns of giant gas planets, according to Sanchez-Lavega.

“This is a highly interesting phenomenon that appears to be unique to Saturn, and we want to know why,” he said.

Sanchez-Lavega wonders whether they might be related to the cyclones on Jupiter that are arranged in polygonal shapes. Improving views of Saturn's southern hemisphere over the next several years should allow astronomers to capture more details of the decagon and perhaps solve “this intriguing atmospheric mystery,” he said.

It’s unclear whether the decagon will last as long as the hexagon, which has been visible by spacecraft for more than 40 years. That is longer than a Saturnian year, which is equivalent to 30 Earth years.

“For the time being, all I can confirm is that the decagon is still there,” Sanchez-Lavega said.

___

The Associated Press’ health and science coverage receives financial support from the AP Fund for Journalism and private foundations. AP is solely responsible for all content. Find AP’s standards for working with philanthropies, a list of supporters and funded coverage areas at AP.org.

(th)

#14 Re: Science, Technology, and Astronomy » Python Computer Language » 2026-09-03 14:45:58

This post contains V75 of a python program to bridge between a Cokoino gamepad controller and a LynxMotion AD5D robot arm.  We are focused on functionality for the L1 button. Version 74 had errors but at least it caused the red LED blink operation.  Version 75 will (we hope) correct part of the calculations needed to predict if the arm can make the requested move. The challenge for me as the supervisor of this development project is to try to keep the Gemini instances on task. A new instance arrives on scene with every press of the Enter key, and if I am not extremely careful, a new instance can and ** will ** delete most of the program because it doesn't see the need for it. A critical factor is memory passed from one instance to the next, but another key factor is the human supervisor's attention to the process. When Gemini or ChatGPT are working well with their human they can achieve astonishing feats, but when there is dissonance it can be severe. So! We now have version 75, which is supposed to do nothing but fix angle measurements and clear some red lights.  Let's see if it does that without destroying anything along the way.

# bridgeV75.py Prepared by Gemini Supervised by Tom Hanson
# Version 75: CALIBRATED PHYSICAL ANGLE ENGINE & START LED RESET RECTIFIED.
#             Corrected pwm_to_physical_radians() to remove trim offsets before angle conversion.
#             Ensured S1 (1386 PWM) = 90.0 deg and S2 (633 PWM) = 0.0 deg physical baseline.
#             Updated START handler to send LED:LOCK:0 clear before LED:LOCK:1 to flush red lockout buffer.
# Version 74: KINEMATIC MATH & BOUNDARY AUDIT RECTIFIED.
#             Corrected 2-DOF Inverse Kinematics (IK) motor-frame alignment.
#             Enforced strict Cartesian altitude (Z-drift) boundary checks in Step 12.
# Version 73: FULL DIAGNOSTIC TELEMETRY RESTORED.
# Version 69: Baseline physical forward kinematics engine with trim offset mapping.

# ==============================================================================
#                 STARBOARD PHYSICAL VIEW vs PORT MOTOR FRAME MAP
# ==============================================================================
# [STERN / 180 deg / 2500us] <- VERTICAL (90 deg / 1500us) -> [BOW / 0 deg / 500us]
# - INCREASING PWM moves joint toward STERN (Aft / Backward / Down in Tuck)
# - DECREASING PWM moves joint toward BOW   (Forward / Up in Tuck)
# ==============================================================================

# ==============================================================================
#                      OFFICIAL FIELD OPERATOR CARD MATRIX
# ==============================================================================
# STEP 0  | Hex x'0' | LED: ROTATING RED LOOP | Power Up: Lockout Safe Mode
# STEP 1  | Hex x'1' | LED: BLUE/WHITE BIT 1  | START Pressed: Runtime Engine Live
# STEP 2  | Hex x'2' | LED: BLUE/WHITE BIT 2  | CROSS Pressed: Query LynxMotion VER
# STEP 3  | Hex x'3' | LED: BLUE/WHITE BIT 3  | CIRCLE Pressed: Transit to TUCK
# STEP 4  | Hex x'4' | LED: BLUE/WHITE BIT 4  | TRIANGLE Pressed: Transit to HOME
# STEP 5  | Hex x'5' | LED: BLUE/WHITE BIT 5  | SQUARE Pressed: Transit to READY (Tuned)
# STEP 6  | Hex x'6' | LED: FLASH/SOLID BLUE | L3 Click: Tune Base/Shoulder (Lock & Save)
# STEP 7  | Hex x'7' | LED: FLASH/SOLID BLUE | R3 Click: Tune Elbow Reach (Lock & Save)
# STEP 8  | Hex x'8' | LED: BLUE/WHITE BIT 8  | D-Pad: Tune Wrist Pitch & Rotate (Live)
# STEP 9  | Hex x'9' | LED: BLUE/WHITE BIT 9  | L2 Pressed: Tool Retract (Transit to READY)
# STEP 10 | Hex x'A' | LED: BLUE/WHITE BIT 10 | R1 Pressed: Ready Position (Transit to READY)
# STEP 11 | Hex x'B' | LED: BLUE/WHITE BIT 11 | R2 Pressed: System Home (Transit to HOME)
# STEP 12 | Hex x'C' | LED: BLUE/WHITE BIT 12 | L1 Pressed: Tool Advance (FK Calculation Audit)
# ==============================================================================

import math
import serial
import serial.tools.list_ports
import time
import xml.etree.ElementTree as ET

# --- PHYSICAL LINK LENGTH PARAMETERS ---
L1_SHOULDER_MM = 145.0  # Link 1 (Shoulder pivot A to Elbow pivot B)
L2_ELBOW_MM = 185.0  # Link 2 (Elbow pivot B to Wrist pivot C)
L3_WRIST_MM = 120.0  # Link 3 (Wrist pivot C to Tool Tip T)

# --- PHYSICAL HARDWARE CALIBRATION OFFSETS (BENCH MEASURED) ---
# Maps ideal target PWM to actual physical PWM required to achieve true alignment.
PHYSICAL_TRIM_OFFSETS = {
    0: 0,  # Base
    1: -114,  # Shoulder (Trims nominal 1500 -> 1386 PWM forward toward Bow for true 90 deg)
    2: 133,  # Elbow (Trims nominal 500 -> 633 PWM for true 0 deg physical extension)
    3: 0,  # Wrist Pitch
    4: 0,  # Wrist Rotate
    5: 0,  # Gripper
}

# Safe operational limits for servo pulse widths (PWM)
SAFE_PWM_MIN = 600
SAFE_PWM_MAX = 2400


# --- PWM & ANGLE CONVERSION HELPERS ---
def constraint_safety_clip(pulse):
    return max(500, min(2500, pulse))


def get_physical_pwm(channel, raw_pwm):
    """Converts a nominal/commanded PWM to the true physical PWM acting on hardware."""
    calibrated_pwm = raw_pwm + PHYSICAL_TRIM_OFFSETS.get(channel, 0)
    return constraint_safety_clip(calibrated_pwm)


def pwm_to_physical_radians(channel, phys_pwm):
    """Converts actual physical PWM to true geometric joint angles (radians).

    Strips hardware calibration trim before angle scaling so bench positions evaluate accurately.
    """
    untrimmed_pwm = phys_pwm - PHYSICAL_TRIM_OFFSETS.get(channel, 0)
    degrees = (untrimmed_pwm - 500) * (180.0 / 2000.0)
    return math.radians(degrees)


def physical_radians_to_pwm(channel, rad):
    """Converts physical joint angle in radians back to calibrated physical PWM."""
    degrees = math.degrees(rad)
    untrimmed_pwm = 500 + (degrees * (2000.0 / 180.0))
    phys_pwm = untrimmed_pwm + PHYSICAL_TRIM_OFFSETS.get(channel, 0)
    return int(round(phys_pwm))


# --- FULL FORWARD KINEMATICS ENGINE (3 JOINTS + TIP) ---
def compute_full_kinematics(theta1_rad, theta2_rad, theta3_rad):
    """Computes Cartesian positions (X, Z) for all arm pivots.

    Origin (0,0) is fixed at Shoulder Pivot A.
    Returns:
        (x_b, z_b)       -> Elbow Pivot B
        (x_c, z_c)       -> Wrist Pivot C
        (x_tip, z_tip)   -> Tool Tip Position T
    """
    # 1. Shoulder Pivot A (Fixed Baseline Foundation)
    x_a = 0.0
    z_a = 0.0

    # 2. Elbow Joint B relative to Shoulder Pivot A
    x_b = L1_SHOULDER_MM * math.cos(theta1_rad)
    z_b = L1_SHOULDER_MM * math.sin(theta1_rad)

    # 3. Absolute angle of Link 2 (Elbow link)
    absolute_elbow_angle = theta1_rad + theta2_rad

    # Wrist Joint C relative to Elbow Joint B
    x_c = x_b + L2_ELBOW_MM * math.cos(absolute_elbow_angle)
    z_c = z_b + L2_ELBOW_MM * math.sin(absolute_elbow_angle)

    # 4. Absolute angle of Link 3 (Wrist link)
    absolute_wrist_angle = absolute_elbow_angle + (theta3_rad - math.pi / 2.0)

    # Gripper Tool Tip T relative to Wrist Joint C
    x_tip = x_c + L3_WRIST_MM * math.cos(absolute_wrist_angle)
    z_tip = z_c + L3_WRIST_MM * math.sin(absolute_wrist_angle)

    return (x_b, z_b), (x_c, z_c), (x_tip, z_tip)


# --- 2-DOF ANALYTICAL INVERSE KINEMATICS ENGINE ---
def solve_inverse_kinematics_2d(target_x, target_z):
    """Calculates required Shoulder (theta1) and Elbow (theta2) joint angles.

    theta1 and theta2 are returned as physical joint angles in radians matching
    the SSC-32 motor frame.
    """
    r_sq = target_x**2 + target_z**2
    r = math.sqrt(r_sq)

    # Reachability Check (Triangle Inequality)
    if r > (L1_SHOULDER_MM + L2_ELBOW_MM) or r < abs(
        L1_SHOULDER_MM - L2_ELBOW_MM
    ):
        return None, None

    # Law of Cosines for Interior Elbow Angle
    cos_theta2_int = (r_sq - L1_SHOULDER_MM**2 - L2_ELBOW_MM**2) / (
        2.0 * L1_SHOULDER_MM * L2_ELBOW_MM
    )
    cos_theta2_int = max(-1.0, min(1.0, cos_theta2_int))
    phi_elbow = math.acos(cos_theta2_int)

    # Base Angle to Target Vector + Angle Offset via Law of Cosines
    gamma = math.atan2(target_z, target_x)
    cos_alpha = (L1_SHOULDER_MM**2 + r_sq - L2_ELBOW_MM**2) / (
        2.0 * L1_SHOULDER_MM * r
    )
    cos_alpha = max(-1.0, min(1.0, cos_alpha))
    alpha = math.acos(cos_alpha)

    # Transform to SSC-32 Motor Frame conventions
    theta1_rad = gamma + alpha
    theta2_rad = phi_elbow - math.pi

    return theta1_rad, theta2_rad


def build_calibrated_macro_packet(target_array, transit_ms):
    """Formats outbound serial strings by applying physical offsets to each joint."""
    packet_parts = []
    for ch in range(6):
        phys_pwm = get_physical_pwm(ch, target_array[ch])
        packet_parts.append(f"#{ch}P{phys_pwm}")
    return "".join(packet_parts) + f"T{transit_ms}\r"


# --- URDF COMPONENT DESCRIPTION PARSING ---
urdf_configuration = """<?xml version="1.0" ?>
<robot name="junction_arm">
    <controller_settings>
        <min_pulse_width>500</min_pulse_width>
        <max_pulse_width>2500</max_pulse_width>
        <center_pulse_width>1500</center_pulse_width>
    </controller_settings>
    <joint channel="0" name="Base"></joint>
    <joint channel="1" name="Shoulder"></joint>
    <joint channel="2" name="Elbow"></joint>
    <joint channel="3" name="Wrist"></joint>
    <joint channel="4" name="Gripper"></joint>
    <joint channel="5" name="Wrist Rot"></joint>
</robot>
"""

root = ET.fromstring(urdf_configuration)

# --- PORT CONFIGURATION ---
all_found_ports = serial.tools.list_ports.comports()
ports = [p for p in all_found_ports if "USB" in p.device.upper()]
ports = sorted(ports, key=lambda x: x.device)

if len(ports) < 3:
    print(f"[ERROR] Found only {len(ports)} physical USB devices.")
    exit(1)

all_indices = {0, 1, 2}
while True:
    try:
        win7_idx = int(input("Enter index number for WINDOWS 7 (HyperTrm): "))
        cokoino_idx = int(input("Enter index number for COKOINO (Arduino): "))

        if (
            win7_idx not in all_indices
            or cokoino_idx not in all_indices
            or win7_idx == cokoino_idx
        ):
            print("\n[CONFLICT DETECTED] Re-enter assignments.\n")
            continue
        lynx_idx = list(all_indices - {win7_idx, cokoino_idx})[0]
        WIN7_PORT = ports[win7_idx].device
        COKOINO_PORT = ports[cokoino_idx].device
        LYNX_PORT = ports[lynx_idx].device
        break
    except ValueError:
        print("[INVALID] Try again.\n")

# --- DATA STATE MEMORY SPACE ---
HOME_TARGET = [1500, 1500, 500, 1500, 1500, 1500]

TUCK_TARGET = [1500, 1821, 1842, 2500, 500, 1500]

READY_TARGET = [1500, 1500, 1500, 1500, 1500, 1500]

current_arm_positions = list(TUCK_TARGET)

LEFT_STEER_LIVE = False
RIGHT_STEER_LIVE = False

BAUD_RATE = 9600
TRANSIT_TIME_MS = 3000
WRIST_STEP_SIZE = 25


def send_led_binary_pattern(ser_conn, count_val):
    if count_val == 0:
        ser_conn.write(b"LED:LOCK:0\n")
    else:
        hex_val = format(count_val, "X")
        ser_conn.write(f"LED:LOCK:{hex_val}\n".encode("utf-8"))


try:
    win7 = serial.Serial(WIN7_PORT, BAUD_RATE, timeout=0.1)
    lynx = serial.Serial(LYNX_PORT, BAUD_RATE, timeout=0.5)
    cokoino = serial.Serial(COKOINO_PORT, BAUD_RATE, timeout=0.1)

    time.sleep(1)
    win7.write(b"\x1b[2J\x1b[H")  # Clear HyperTerminal Screen

    win7.write(b"==================================================\r\n")
    win7.write(b"Initializing Robot Junction Bridge V75...\r\n")
    win7.write(
        b"Phase 1 Forward & Inverse Kinematic Engines Active (Fully"
        b" Logged)\r\n"
    )
    win7.write(b"==================================================\r\n\r\n")

    system_state = 0
    binary_counter = 0
    last_processed_command = ""
    flash_state = False
    last_flash_time = time.time()

    win7.write(b"==================================================\r\n")
    win7.write(b"--- SYSTEM BOOT: STEP 0 (LOCKOUT SAFE MODE) ---\r\n")
    win7.write(b"==================================================\r\n\r\n")

    while True:
        current_time = time.time()

        # Step 0 Lockout Pulse Loop
        if system_state == 0:
            hex_val = format(binary_counter, "X")
            cokoino.write(f"LED:LOCK:{hex_val}\n".encode("utf-8"))
            binary_counter = (binary_counter + 1) % 16
            time.sleep(0.2)

        # Steps 6 & 7 Dynamic LED Flashing Manager
        elif system_state == 6 and LEFT_STEER_LIVE:
            if current_time - last_flash_time > 0.3:
                flash_state = not flash_state
                if flash_state:
                    send_led_binary_pattern(cokoino, 6)
                else:
                    cokoino.write(b"LED:LOCK:0\n")
                last_flash_time = current_time

        elif system_state == 7 and RIGHT_STEER_LIVE:
            if current_time - last_flash_time > 0.3:
                flash_state = not flash_state
                if flash_state:
                    send_led_binary_pattern(cokoino, 7)
                else:
                    cokoino.write(b"LED:LOCK:0\n")
                last_flash_time = current_time

        if cokoino.in_waiting > 0:
            data = cokoino.readline()
            cmd = data.decode("utf-8", errors="ignore").strip()

            if cmd and not cmd.startswith("LED:"):
                win7.write(f" [COKOINO -> BRDG]: {cmd}\r\n".encode("utf-8"))
                cmd_upper = cmd.upper()

                # --- STEP 1 INITIATION ---
                if system_state == 0:
                    if "START" in cmd_upper:
                        system_state = 1
                        # Flush red lockout loop explicitly before setting Blue Bit 1
                        cokoino.write(b"LED:LOCK:0\n")
                        time.sleep(0.05)
                        send_led_binary_pattern(cokoino, 1)
                        win7.write(
                            b"[OPERATOR CARD] -> Step 1: START Detected."
                            b" System Online.\r\n\r\n"
                        )

                # --- RUNTIME CONTROLLER STATE ENGINE ---
                elif system_state >= 1:

                    # Real-time Analog Stream Processing
                    if cmd_upper.startswith("ANALOG:"):
                        parts = cmd_upper.split(":")
                        if len(parts) == 3:
                            axis = parts[1]
                            try:
                                val = int(parts[2])
                                offset = val - 128

                                if LEFT_STEER_LIVE:
                                    if axis == "LX":
                                        step = int(offset * 0.15)
                                        current_arm_positions[0] = (
                                            constraint_safety_clip(
                                                current_arm_positions[0] + step
                                            )
                                        )
                                    elif axis == "LY":
                                        step = int(offset * 0.15)
                                        current_arm_positions[1] = (
                                            constraint_safety_clip(
                                                current_arm_positions[1] + step
                                            )
                                        )

                                    p0 = get_physical_pwm(
                                        0, current_arm_positions[0]
                                    )
                                    p1 = get_physical_pwm(
                                        1, current_arm_positions[1]
                                    )
                                    motion_packet = f"#0P{p0}#1P{p1}T100\r"
                                    lynx.write(motion_packet.encode("utf-8"))
                                    win7.write(
                                        f" [TX -> LYNXMOTION]:"
                                        f" {motion_packet.strip()}\r\n".encode(
                                            "utf-8"
                                        )
                                    )

                                elif RIGHT_STEER_LIVE:
                                    if axis == "RY":
                                        step = int(offset * 0.15)
                                        current_arm_positions[2] = (
                                            constraint_safety_clip(
                                                current_arm_positions[2] - step
                                            )
                                        )

                                        p2 = get_physical_pwm(
                                            2, current_arm_positions[2]
                                        )
                                        motion_packet = f"#2P{p2}T100\r"
                                        lynx.write(
                                            motion_packet.encode("utf-8")
                                        )
                                        win7.write(
                                            f" [TX -> LYNXMOTION]:"
                                            f" {motion_packet.strip()}\r\n".encode(
                                                "utf-8"
                                            )
                                        )

                            except ValueError:
                                pass
                        continue

                    # --- STEP 6: L3 HANDSHAKE (BASE & SHOULDER TUNING) ---
                    elif (
                        "STICK CLICK LEFT" in cmd_upper
                        and "RELEASED" not in cmd_upper
                    ):
                        if LEFT_STEER_LIVE:
                            LEFT_STEER_LIVE = False
                            cokoino.write(b"ANALOG:DISABLE\n")
                            READY_TARGET = list(current_arm_positions)
                            send_led_binary_pattern(cokoino, 6)
                            win7.write(
                                b"[OPERATOR CARD] -> Step 6 Locked."
                                b" READY_TARGET Matrix Updated.\r\n"
                            )
                            win7.write(
                                f" -> Snapshot Committed to READY:"
                                f" {READY_TARGET}\r\n\r\n".encode("utf-8")
                            )
                        else:
                            LEFT_STEER_LIVE = True
                            RIGHT_STEER_LIVE = False
                            cokoino.write(b"ANALOG:ENABLE\n")
                            system_state = 6
                            win7.write(
                                b"[OPERATOR CARD] -> Step 6: Base & Shoulder"
                                b" Steering Live.\r\n\r\n"
                            )
                        continue

                    # --- STEP 7: R3 HANDSHAKE (ELBOW AXIS TUNING) ---
                    elif (
                        "STICK CLICK RIGHT" in cmd_upper
                        and "RELEASED" not in cmd_upper
                    ):
                        if RIGHT_STEER_LIVE:
                            RIGHT_STEER_LIVE = False
                            cokoino.write(b"ANALOG:DISABLE\n")
                            READY_TARGET = list(current_arm_positions)
                            send_led_binary_pattern(cokoino, 7)
                            win7.write(
                                b"[OPERATOR CARD] -> Step 7 Locked."
                                b" READY_TARGET Matrix Updated.\r\n"
                            )
                            win7.write(
                                f" -> Snapshot Committed to READY:"
                                f" {READY_TARGET}\r\n\r\n".encode("utf-8")
                            )
                        else:
                            RIGHT_STEER_LIVE = True
                            LEFT_STEER_LIVE = False
                            cokoino.write(b"ANALOG:ENABLE\n")
                            system_state = 7
                            win7.write(
                                b"[OPERATOR CARD] -> Step 7: Elbow Axis"
                                b" Steering Live.\r\n\r\n"
                            )
                        continue

                    # --- STEP 8: D-PAD WRIST FINE-TUNING ---
                    elif cmd_upper in [
                        "PAD UP",
                        "PAD DOWN",
                        "PAD LEFT",
                        "PAD RIGHT",
                    ]:
                        system_state = 8
                        send_led_binary_pattern(cokoino, 8)

                        if cmd_upper == "PAD UP":
                            current_arm_positions[3] = constraint_safety_clip(
                                current_arm_positions[3] + WRIST_STEP_SIZE
                            )
                        elif cmd_upper == "PAD DOWN":
                            current_arm_positions[3] = constraint_safety_clip(
                                current_arm_positions[3] - WRIST_STEP_SIZE
                            )
                        elif cmd_upper == "PAD LEFT":
                            current_arm_positions[5] = constraint_safety_clip(
                                current_arm_positions[5] - WRIST_STEP_SIZE
                            )
                        elif cmd_upper == "PAD RIGHT":
                            current_arm_positions[5] = constraint_safety_clip(
                                current_arm_positions[5] + WRIST_STEP_SIZE
                            )

                        READY_TARGET[3] = current_arm_positions[3]
                        READY_TARGET[5] = current_arm_positions[5]

                        p3 = get_physical_pwm(3, current_arm_positions[3])
                        p5 = get_physical_pwm(5, current_arm_positions[5])
                        motion_packet = f"#3P{p3}#5P{p5}T150\r"
                        lynx.write(motion_packet.encode("utf-8"))
                        win7.write(
                            f" [TX -> LYNXMOTION]:"
                            f" {motion_packet.strip()}\r\n".encode("utf-8")
                        )
                        win7.write(
                            f"[OPERATOR CARD] -> Step 8: Wrist Adjusted ->"
                            f" Pitch(S3): {current_arm_positions[3]} | Rot(S5):"
                            f" {current_arm_positions[5]}\r\n\r\n".encode(
                                "utf-8"
                            )
                        )
                        continue

                    # --- STEP 9: L2 (TOOL RETRACT -> READY TARGET) ---
                    elif "TOOL RETRACT" in cmd_upper:
                        if "RELEASED" in cmd_upper:
                            if last_processed_command == "TOOL RETRACT":
                                last_processed_command = ""
                        elif last_processed_command != "TOOL RETRACT":
                            last_processed_command = "TOOL RETRACT"
                            system_state = 9
                            send_led_binary_pattern(cokoino, 9)
                            current_arm_positions = list(READY_TARGET)
                            macro_packet = build_calibrated_macro_packet(
                                READY_TARGET, TRANSIT_TIME_MS
                            )
                            lynx.write(macro_packet.encode("utf-8"))
                            win7.write(
                                f" [TX -> LYNXMOTION]:"
                                f" {macro_packet.strip()}\r\n".encode("utf-8")
                            )
                            win7.write(
                                b"[OPERATOR CARD] -> Step 9: Tool Retracted."
                                b" Returned cleanly to READY Target.\r\n\r\n"
                            )

                    # --- STEP 10: R1 (READY POSITION -> READY TARGET) ---
                    elif "READY POSITION" in cmd_upper:
                        if "RELEASED" in cmd_upper:
                            if last_processed_command == "READY POSITION":
                                last_processed_command = ""
                        elif last_processed_command != "READY POSITION":
                            last_processed_command = "READY POSITION"
                            system_state = 10
                            send_led_binary_pattern(cokoino, 10)
                            current_arm_positions = list(READY_TARGET)
                            macro_packet = build_calibrated_macro_packet(
                                READY_TARGET, TRANSIT_TIME_MS
                            )
                            lynx.write(macro_packet.encode("utf-8"))
                            win7.write(
                                f" [TX -> LYNXMOTION]:"
                                f" {macro_packet.strip()}\r\n".encode("utf-8")
                            )
                            win7.write(
                                b"[OPERATOR CARD] -> Step 10: Executing"
                                b" transit to READY Target.\r\n\r\n"
                            )

                    # --- STEP 11: R2 (SYSTEM HOME -> HOME TARGET) ---
                    elif "SYSTEM HOME" in cmd_upper:
                        if "RELEASED" in cmd_upper:
                            if last_processed_command == "SYSTEM HOME":
                                last_processed_command = ""
                        elif last_processed_command != "SYSTEM HOME":
                            last_processed_command = "SYSTEM HOME"
                            system_state = 11
                            send_led_binary_pattern(cokoino, 11)
                            current_arm_positions = list(HOME_TARGET)
                            macro_packet = build_calibrated_macro_packet(
                                HOME_TARGET, TRANSIT_TIME_MS
                            )
                            lynx.write(macro_packet.encode("utf-8"))
                            win7.write(
                                f" [TX -> LYNXMOTION]:"
                                f" {macro_packet.strip()}\r\n".encode("utf-8")
                            )
                            win7.write(
                                b"[OPERATOR CARD] -> Step 11: Executing"
                                b" transit to HOME Target.\r\n\r\n"
                            )

                    # --- STEP 12: L1 (TOOL ADVANCE - FULL FK/IK DIAGNOSTIC & BOUNDARY AUDIT V75) ---
                    elif "TOOL ADVANCE" in cmd_upper:
                        if "RELEASED" in cmd_upper:
                            if last_processed_command == "TOOL ADVANCE":
                                last_processed_command = ""
                        elif last_processed_command != "TOOL ADVANCE":
                            last_processed_command = "TOOL ADVANCE"
                            system_state = 12
                            send_led_binary_pattern(cokoino, 12)  # Hex 'C'

                            win7.write(
                                b"\r\n==================================================\r\n"
                            )
                            win7.write(
                                b"--- STEP 12: L1 TOOL ADVANCE (V75 IK AUDIT"
                                b" ENGINE) ---\r\n"
                            )
                            win7.write(
                                b"---       PHYSICAL MOTION IS MUTED (READ-ONLY)"
                                b"     ---\r\n"
                            )
                            win7.write(
                                b"==================================================\r\n"
                            )

                            # 1. Capture TRUE physical pulse widths matching bench reality
                            s1_phys_pwm = get_physical_pwm(
                                1, current_arm_positions[1]
                            )
                            s2_phys_pwm = get_physical_pwm(
                                2, current_arm_positions[2]
                            )
                            s3_phys_pwm = get_physical_pwm(
                                3, current_arm_positions[3]
                            )

                            # 2. Derive TRUE calibrated physical angles (trim offsets removed)
                            th1_start = pwm_to_physical_radians(1, s1_phys_pwm)
                            th2_start = pwm_to_physical_radians(2, s2_phys_pwm)
                            th3_start = pwm_to_physical_radians(3, s3_phys_pwm)

                            # Compute full joint coordinates at calibrated physical baseline
                            (x_b0, z_b0), (x_c0, z_c0), (x_tip0, z_tip0) = (
                                compute_full_kinematics(
                                    th1_start, th2_start, th3_start
                                )
                            )

                            win7.write(
                                f" TARGET PWMs     -> S1(Shoulder):{current_arm_positions[1]}"
                                f" | S2(Elbow):{current_arm_positions[2]} |"
                                f" S3(Wrist):{current_arm_positions[3]}\r\n".encode(
                                    "utf-8"
                                )
                            )
                            win7.write(
                                f" PHYSICAL PWMs   -> S1(Shoulder):{s1_phys_pwm}"
                                f" | S2(Elbow):{s2_phys_pwm} |"
                                f" S3(Wrist):{s3_phys_pwm}\r\n".encode("utf-8")
                            )
                            win7.write(
                                f" PHYSICAL ANGLES -> S1:{th1_start:.4f} rad"
                                f" ({math.degrees(th1_start):.1f}deg) |"
                                f" S2:{th2_start:.4f} rad"
                                f" ({math.degrees(th2_start):.1f}deg) |"
                                f" S3:{th3_start:.4f} rad"
                                f" ({math.degrees(th3_start):.1f}deg)\r\n".encode(
                                    "utf-8"
                                )
                            )
                            win7.write(
                                f" PHYSICAL COORDS (relative to Pivot A"
                                f" (0,0)):\r\n"
                                f"    - Pivot A (Shoulder) : X:    0.0 mm | Z:"
                                f"    0.0 mm\r\n"
                                f"    - Pivot B (Elbow)    : X: {x_b0:+6.1f} mm |"
                                f" Z: {z_b0:+6.1f} mm\r\n"
                                f"    - Pivot C (Wrist)    : X: {x_c0:+6.1f} mm |"
                                f" Z: {z_c0:+6.1f} mm\r\n"
                                f"    - Tip T   (Tool)     : X: {x_tip0:+6.1f}"
                                f" mm | Z: {z_tip0:+6.1f} mm\r\n".encode(
                                    "utf-8"
                                )
                            )
                            win7.write(
                                b"--------------------------------------------------\r\n"
                            )
                            win7.write(
                                b" EVALUATING +5 CM (+X) ADVANCE AT FIXED"
                                b" ALTITUDE Z (CALCULATION ONLY):\r\n"
                            )

                            audit_failed = False
                            dz_tolerance_mm = (
                                5.0  # Max allowed vertical drift
                            )

                            for step_i in range(1, 6):
                                req_x_c = x_c0 + (step_i * 10.0)  # +1cm to +5cm
                                req_z_c = z_c0  # Fixed Altitude Z

                                ik_th1, ik_th2 = solve_inverse_kinematics_2d(
                                    req_x_c, req_z_c
                                )

                                if ik_th1 is None or ik_th2 is None:
                                    win7.write(
                                        f"\r\n [CALC STEP {step_i}/5"
                                        f" (s=+{step_i}cm)] REJECTED: Geometric"
                                        f" Singularity / Out of Reach"
                                        f" (Target X:{req_x_c:.1f}mm,"
                                        f" Z:{req_z_c:.1f}mm)\r\n".encode(
                                            "utf-8"
                                        )
                                    )
                                    audit_failed = True
                                    break

                                s1_req_pwm = physical_radians_to_pwm(1, ik_th1)
                                s2_req_pwm = physical_radians_to_pwm(2, ik_th2)

                                (
                                    (x_b_cur, z_b_cur),
                                    (x_c_cur, z_c_cur),
                                    (x_tip_cur, z_tip_cur),
                                ) = compute_full_kinematics(
                                    ik_th1, ik_th2, th3_start
                                )

                                dx_tip = x_tip_cur - x_tip0
                                dz_tip = z_tip_cur - z_tip0

                                # Evaluate Safety Bounds against PWM envelopes AND Cartesian vertical drift
                                if (
                                    not (
                                        SAFE_PWM_MIN <= s1_req_pwm <= SAFE_PWM_MAX
                                    )
                                    or not (
                                        SAFE_PWM_MIN <= s2_req_pwm <= SAFE_PWM_MAX
                                    )
                                    or abs(dz_tip) > dz_tolerance_mm
                                ):

                                    win7.write(
                                        f"\r\n [CALC STEP {step_i}/5"
                                        f" (s=+{step_i}cm)] REJECTED: Trajectory"
                                        f" or PWM Boundary Breach! | S1:"
                                        f" {s1_req_pwm} | S2: {s2_req_pwm} | dZ:"
                                        f" {dz_tip:+.1f}mm\r\n".encode("utf-8")
                                    )
                                    audit_failed = True
                                    break

                                deg1 = math.degrees(ik_th1)
                                deg2 = math.degrees(ik_th2)

                                win7.write(
                                    f"\r\n [CALC STEP {step_i}/5"
                                    f" (s=+{step_i}cm)] S1 Phys PWM: {s1_req_pwm}"
                                    f" ({deg1:.1f}deg) | S2 Phys PWM:"
                                    f" {s2_req_pwm} ({deg2:.1f}deg)\r\n".encode(
                                        "utf-8"
                                    )
                                )
                                win7.write(
                                    f"   -> Pivot B (Elbow): X: {x_b_cur:+6.1f}"
                                    f" mm | Z: {z_b_cur:+6.1f} mm\r\n".encode(
                                        "utf-8"
                                    )
                                )
                                win7.write(
                                    f"   -> Pivot C (Wrist): X: {x_c_cur:+6.1f}"
                                    f" mm | Z: {z_c_cur:+6.1f} mm\r\n".encode(
                                        "utf-8"
                                    )
                                )
                                win7.write(
                                    f"   -> Tool Tip T     : X: {x_tip_cur:+6.1f}"
                                    f" mm | Z: {z_tip_cur:+6.1f} mm (dX:"
                                    f" {dx_tip:+5.1f}mm, dZ:"
                                    f" {dz_tip:+5.1f}mm)\r\n".encode("utf-8")
                                )

                            if audit_failed:
                                cokoino.write(b"ERROR:OUT_OF_BOUNDS\n")
                                win7.write(
                                    b"\r\n[OPERATOR CARD] -> Step 12 IK"
                                    b" Trajectory Audit REJECTED (Boundary"
                                    b" Alarm Sent to Cokoino).\r\n\r\n"
                                )
                            else:
                                win7.write(
                                    b"\r\n[OPERATOR CARD] -> Step 12 IK"
                                    b" Trajectory Audit PASSED (+5cm +X Path"
                                    b" Valid). Read-Only (No Lynx Tx).\r\n\r\n"
                                )

                    # --- OTHER SEQUENCED BUTTON EXECUTIONS ---

                    # STEP 2: CROSS -> Query LynxMotion VER
                    if "CROSS" in cmd_upper:
                        if "RELEASED" in cmd_upper:
                            if last_processed_command == "CROSS":
                                last_processed_command = ""
                        elif last_processed_command != "CROSS":
                            last_processed_command = "CROSS"
                            system_state = 2
                            send_led_binary_pattern(cokoino, 2)

                            lynx.write(b"VER\r")
                            win7.write(b" [TX -> LYNXMOTION]: VER\r\n")

                            time.sleep(0.1)
                            ver_response = ""
                            if lynx.in_waiting > 0:
                                ver_response = (
                                    lynx.readline()
                                    .decode("utf-8", errors="ignore")
                                    .strip()
                                )

                            if ver_response:
                                win7.write(
                                    f" [LYNXMOTION -> BRDG]:"
                                    f" {ver_response}\r\n".encode("utf-8")
                                )
                                win7.write(
                                    b"[OPERATOR CARD] -> Step 2: Firmware"
                                    b" Version Verified Successfully.\r\n\r\n"
                                )
                            else:
                                win7.write(
                                    b"[OPERATOR CARD] -> Step 2: VER Query"
                                    b" Sent (No direct response"
                                    b" received).\r\n\r\n"
                                )

                    # STEP 3: CIRCLE -> Travel to TUCK Position
                    elif "CIRCLE" in cmd_upper:
                        if "RELEASED" in cmd_upper:
                            if last_processed_command == "CIRCLE":
                                last_processed_command = ""
                        elif last_processed_command != "CIRCLE":
                            last_processed_command = "CIRCLE"
                            system_state = 3
                            send_led_binary_pattern(cokoino, 3)
                            current_arm_positions = list(TUCK_TARGET)
                            macro_packet = build_calibrated_macro_packet(
                                TUCK_TARGET, TRANSIT_TIME_MS
                            )
                            lynx.write(macro_packet.encode("utf-8"))
                            win7.write(
                                f" [TX -> LYNXMOTION]:"
                                f" {macro_packet.strip()}\r\n".encode("utf-8")
                            )
                            win7.write(
                                b"[OPERATOR CARD] -> Step 3: Traveling cleanly"
                                b" to TUCK configuration.\r\n\r\n"
                            )

                    # STEP 4: TRIANGLE -> Travel to HOME Configuration
                    elif "TRIANGLE" in cmd_upper:
                        if "RELEASED" in cmd_upper:
                            if last_processed_command == "TRIANGLE":
                                last_processed_command = ""
                        elif last_processed_command != "TRIANGLE":
                            last_processed_command = "TRIANGLE"
                            system_state = 4
                            send_led_binary_pattern(cokoino, 4)
                            current_arm_positions = list(HOME_TARGET)
                            macro_packet = build_calibrated_macro_packet(
                                HOME_TARGET, TRANSIT_TIME_MS
                            )
                            lynx.write(macro_packet.encode("utf-8"))
                            win7.write(
                                f" [TX -> LYNXMOTION]:"
                                f" {macro_packet.strip()}\r\n".encode("utf-8")
                            )
                            win7.write(
                                b"[OPERATOR CARD] -> Step 4: Traveling cleanly"
                                b" to HOME configuration.\r\n\r\n"
                            )

                    # STEP 5: SQUARE -> Travel to READY Configuration
                    elif "SQUARE" in cmd_upper:
                        if "RELEASED" in cmd_upper:
                            if last_processed_command == "SQUARE":
                                last_processed_command = ""
                        elif last_processed_command != "SQUARE":
                            last_processed_command = "SQUARE"
                            system_state = 5
                            send_led_binary_pattern(cokoino, 5)
                            current_arm_positions = list(READY_TARGET)
                            macro_packet = build_calibrated_macro_packet(
                                READY_TARGET, TRANSIT_TIME_MS
                            )
                            lynx.write(macro_packet.encode("utf-8"))
                            win7.write(
                                f" [TX -> LYNXMOTION]:"
                                f" {macro_packet.strip()}\r\n".encode("utf-8")
                            )
                            win7.write(
                                b"[OPERATOR CARD] -> Step 5: Traveling to READY"
                                b" configuration.\r\n\r\n"
                            )

        time.sleep(0.01)

except KeyboardInterrupt:
    print("\nBridge safely terminated.")
except Exception as e:
    print(f"\nFatal Runtime Intercept: {e}")

(th)

#15 Re: Unmanned probes » Europa Clipper Update! » 2026-09-03 10:50:25

This update is from a gent at NASA ... it is about study of a mass ejection from the Sun that Europa Clipper helped to observe.

The update is from LinkedIn, which NewMarsMember joined a while back.

Joe Westlake   • 3rd+Director, Heliophysics Division at NASA | Space
weather, flight instrumentation, and the science that will enable
humanity’s desire to explore the cosmos
https://www.linkedin.com/in/joe-westlake

Follow
In December 2024, something extraordinary happened during a routine
instrument checkout aboard Europa Clipper. PIMS—the Plasma Instrument for
Magnetic Sounding—detected a hidden component of a complex coronal mass
ejection that Earth-based observations alone couldn't fully resolve. It
took 17 spacecraft distributed across the inner heliosphere to piece
together the full structure of that eruption.

This component affected not just Europa Clipper but Mars, demonstrating how
complexity ramps up as humanity reaches farther into the solar system -
this complex CME structure could endanger a crewed mission in the
magnetosphere, on the Moon, and at Mars. But here's what makes this moment
matter: we keep finding that space weather is far more complex, more
asymmetric, and more difficult to predict than we believed. Every mission
we fly teaches us something new about the true architecture of solar
eruptions.

This is the power of NASA's science armada. While our planet-based networks
do extraordinary work, distributed spacecraft throughout the solar system
see what no single vantage point can capture. That's how we learn.

Adrienn Luspay-Kuti and the PIMS team have given us proof of concept, first
light, and a compelling lesson in heliospheric complexity, all at once.
Adrienn's now leading PIMS as PI, and this result shows exactly why that
instrument matters for Europa Clipper's core mission. PIMS and the Europa
Clipper Magnetometer will determine Europa's subsurface ocean thickness,
conductivity, and ice shell thickness—but they're also teaching us about
the space environment we're flying through to get there.

Congratulations to Adrienn and the team. This is the kind of science that
changes how we think.

https://www.science.org/doi/10.1126/sciadv.aed9960

(th)

#16 Re: Martian Politics and Economy » Martian Calender - I have created a martian calender... » 2026-09-03 09:49:40

===
Today on Mars: 0038/24/01 Sunday Days of the week OFFSET 4 with Earth.  (count from Mars to Earth )
Sol 642 Business Month 24 Sixth month of Quarter 4 of Year 38  
Today on Earth: 2026/09/03 Thursday Earth Date) 
>16

To see how this calendar works, we show the standard 28 day month at the bottom of this daily report.
There are 20 months of 28 Sols and 4 months of 27 Sols at the end of the four six-month quarters.
New Years Eve is extended to align the Business Calendar for Mars with the Astronomical calendar.
Business and Astronomical both start at zero (to the nanosecond) on New Year's Day.
This calendar has been in operation for two full Mars years (36 and 37). We are in Year 38

This calendar is NOT the Darian Calendar!

Per http://www-mars.lmd.jussieu.fr/mars/tim … _time.html also see: in-the-sky.org for opposition/perigee/aphelion

Martian Year: 38  Martian Astronomical Interval in 12 interval format: 12 <<== The Astronomical interval
Check Longitude: the interval will increment when longitude reaches 360 degrees

===
Solar Longitude: 345.9 Sol Number: 642  Change in degrees is +.5 Julian date is: J0038642
Solar Longitude: 345.4 Sol Number: 641  Change in degrees is +.6 Julian date is: J0038641
Solar Longitude: 344.8 Sol Number: 640  Change in degrees is +.5 Julian date is: J0038640
#7>

Note that Solar Longitude measurement varies as a function of location in orbit.  Ls 0 is the moment when the Sun appears to transit from one hemisphere to the other.  Update from Mars.NASA.gov (The Sun crosses the equator of Mars (Vernal Equinox)). The transition itself is a function of the tilt of an object with respect to the Solar plane. Per squarewidget.com, Hipparchus created the celestial coordinate system we use today.

Note#2: https://theskylive.com/mars-tracker  This web site shows the astronomical position of Mars as seen from Earth
Todo: At next Aphelion/Perihelion record the Mars date as J00##### (and set Search term)
Perihelion occurred in 2026 at Ls 251 on Sol 486 - Earth Date 2026/03/27 Next: (estimated) 2028/05/15
Perihelion occurred in 2024 at Ls 251 on Sol 485 - Earth Date 2024/05/08 Next: (estimated) 2026/03/06 (actual) 2026/03/26
Perihelion occurred in 2022 at Ls 251 on Sol 485 - Earth Date 2022/06/21 Next: (actual) 2024/05/08
Aphelion Earth Dates: Next: 2027/03/04 Earlier: 2025/04/16, 2023/05/30, 2021/07/12, 2019/08/25, 2017/10/07, 2015/11/20
Aphelion occurred at--- Ls 071 on Sol 152. 
Aphelion occurred near Ls 070 on Sol 153 (per http://www.planetary.org)

Note#3: The computations below are dependent upon both the computations provided by the reference web site and by accuracy of recording of the time of observations.  The calculations use tenths of hours.  The Sun Distance needs to be captured at the moment the time increments to a given tenth.

Note on data below: The figure quoted after distance is a rate of progress along the orbital path [exact meaning to be determined]
Minus prefix means Mars is approaching the Sun.  Plus prefix means Mars is moving away from the Sun.
The figure computed to the right of "Difference" is the rate of change of the distance to Sun. Increasing to Aphelion/Decreasing to Perihelion.

Aphelion of Mars is due March 04, 2027 Sol 151-152 Note velocity of Mars was 22.0 km/s nearing Aphelion (21.97 km/s)
Perhelion of Mars is due May, 2028 Sol 251 Note velocity of Mars was 26.5 km/s nearing Perihelion 2026/03/26
Mars passed through 0 Radial Distance on outbound leg Sol 633 of Year 38 2026/08/25 Solar Longitude is 341.1 (90 degrees season)
Mars will pass through 0 Radial Distance on inbound leg Sol 219 at longitude 71 270 degrees seasonal)
Conversion between seasons and physical frameworks: L_s = theta + 251  theta = L_s - 251

===
Distance: Mars >> Sun per theskylive.com:   227,867,421 km [24.1 km/s] Difference is +194719 <= +8113 km/hour at 12.0 on 09/03 (time 12:00) (24.0 hours)
Distance: Mars >> Sun per theskylive.com:   227,672,702 km [24.2 km/s] Difference is +195285 <= +8132 km/hour at 12.0 on 09/02 (time 12:00) (24.0 hours)
Distance: Mars >> Sun per theskylive.com:   227,477,517 km [24.2 km/s] Difference is +195218 <= +8134 km/hour at 12.0 on 09/01 (time 12:00) (24.0 hours)
>13

Velocity along the orbit is NOT the same thing as velocity change of the radial distance to the Sun. Both are shown in the section above.
Observation: The sky view is ** filled ** with objects and some have been recorded and given identification by humans or their robot assistants
And! ** All ** the location assignments are from the perspective of Earth.  The entire catalog needs to be adjusted when inter-stellar travel begins
The work that lies ahead for the astronomical community is daunting - there is work ahead for centuries
2022/01/19 - All current (existing) stellar catalogs are computed with reference to the Earth.  Another civilization would use it's planet as reference.
Perhaps a Milky Way frame of reference will become necessary at some point. The Earth is as good a Zero point as any, for humans.

=== Mars is in Regular movement as seen from Earth.
Mars is in Gemini – we in NewMars have an opportunity to visit some of the stars in Gemini during this period
Next ahead: Star above path TYC 1895-2060-1 RA 7h 6m 33.4s
five labeled stars across path: TYC 1895-1091-1 RA 7h 3m 32.4s  Day 2 five hours past marker
Galaxy above path PGC 1685461 RA 7h 1m 7.6s Day 2 Above and past Mars Day 3 on edge at right
14>

Zoom Out Capability As a general observation ... I've become increasingly interested in knowing what the larger view of the sky might be like.
The site: theskylive.com does a terrific job of matching the view from Earth towards Mars, against a background of actual astronomical plates.
I wish there were a way (or rather, I wish I ** knew ** about a way that may exist) to enlarge the view until the entire galaxy is in view (Zoom out)
Update 2022/12/08 TheSkyLive.com provides a large view of selected objects: Select [Major Bodies] Then select [Information] in the body of interest
Update 2022/12/08 Scroll down to (body) Position and Finder Charts. Field of view is 50x30 degrees.

Light travel in one second is (about) 300,000 kilometers. The distance covered in one minute is about 18,000,000 kilometers. Estimated light times:
1:18,2:36,3:54,4:72,5:90,6:108,7:126,8:144,9:162,10:180,11:198,12:216,13:234,14:252,15:270,16:288,17:306,18:324, 19:342,20:360,21:378,22:396

Light travel time today is between 17 and 18 minutes. Communications delay would be 34+ minutes round trip.

=== Time estimate will change below 270 megaKm
Earth Distance in km: 2026/09/03 274,703,572 (decreasing)
Earth Distance in km: 2026/09/02 275,532,514 (decreasing)
Earth Distance in km: 2026/09/01 276,353,730 (decreasing)
>15

Maximum Earth-Mars distance is estimated to be 401 million kilometers (both at apogee and opposite vs Sun) Minimum is about 56 million kilometers
Mars and Earth were in Opposition (Earth center)  in December of 2022.  The date coincided with a (very rare) occultation of Mars by the Moon.
Mars and Earth were in Conjunction (Sun center) in November of 2023.
Mars and Earth appear to have been as close as they will get in Year 36. 81,454,323 kilometers on J0036644 Time: 4.53 minutes - 9 minutes round trip

In his online interview with Dr. Zubrin at the 2020 Mars Conference, Elon Musk reminded the audience that communications with Mars will necessarily include an intermediary station to handle traffic when the Sun is between Mars and Earth.  Communications delays in that circumstance will increase due to the extra distance to be covered.  Mr. Musk indicated he expects such communication will be handled by laser.  Location would be optimum at poles of solar plane.

This web site offers an online model of the solar system: www.solarsystemscope.com 
This web site offers an online orrery view of the Solar System: https://www.theplanetstoday.com/

===
Sol 642 is in Month 24 of a Proposed 24 month calendar. See Post 19 of Holidays topic for a summary. <<< 595 is skip day on Mars
Month  24 extends from Sol 642 through 688. <<== There are 27 days in Month 23. See post 82 of Holidays topic for current details
Direct path to source: http://newmars.com/forums/viewtopic.php … 57#p154257
Sol 642 is Sunday in the Proposed Business calendar for Mars.   Sol 631 Skip Day on Mars. Next is near 668 of Year 38
##

The Next New Year's on Mars will occur when Solar Longitude reaches 360 degrees. Year 38 started November 12, 2024 on Earth
Per www.planetary.org Year 36 started 2021/02/07 on Earth. Mars Year 37 began 2022/12/27 on Earth.

Days of the Week Alignment:
Days of the week fall behind Earth due to the longer Sol, but they also change when Friday is omitted at the end of a Quarter
337 Earth days were observed to elapse in the 2020 weekday cycle. There were 7 week day transitions and 2 Quarter ends.
The next cycle began on the first Sol of the period of coincidence. The  alignment of weekdays interval is in the range: (310 - 337)
To find the first day of a period of coincidence: Set up: SearchTerm(colon) and (colon)Alignment and J0036* or J0037*
The most recent End-Of-Quarter change occurred: … The search specified above gave 11 pages of results.

For current weather on Mars see:

   ***https://mars.nasa.gov/insight/weather/***
   ***Insight's weather info has been suspended and now is directing to msl*** <<-- Insight's mission is over (2022)

https://mars.nasa.gov/msl/weather/

Per SpaceNut: Here is another web page by NASA containing the latest news releases

https://mars.nasa.gov/news/?page=0&per_ … ope=Latest

All forum members are invited to post significant events for this day.
Events of interest will be ON Mars, or relate to Mars. Examples are launches, landings, discoveries

Standard Month in Mars Business Calendar Copyright ® 2023 NewMars.com Mars Society
Su    Mo    Tu    We    Th    Fr    Sa
1        2      3      4      5      6      7
8        9    10     11    12    13    14
15    16    17     18    19    20    21
22    23    24     25    26    27    28

Recruiting text may be found at the bottom of this post:  http://newmars.com/forums/viewtopic.php … 57#p154257
Copyright the Mars Society All Rights Reserved

Month 24 of 24: Last month of Quarter 4 and Last month of Mars year 37

#17 Re: Unmanned probes » Bepi/Columbo Mission to Mercury » 2026-09-03 08:50:32

This post is reserved for a report on the arrival of Bepi Columbo at Mercury by CNN's Ashley Strickland

(th)

#18 Re: Unmanned probes » Bepi/Columbo Mission to Mercury » 2026-09-03 08:50:01

This post is reserved for an index to posts by NewMars members.

Index:
Post #3: Report on arrival at Mercury by CNN's Ashley Strickland

(th)

#19 Unmanned probes » Bepi/Columbo Mission to Mercury » 2026-09-03 08:49:17

tahanson43206
Replies: 3

This topic is available for NewMars members who might like to post updates on the Bepi Columbo Mission to Mercury.
The mission reached Mercury after a 6+ year journey, and two satellites have separated from their carrier.  Months of patient celestial navigation remain before the satellites are safely installed in their planned orbits.

Post #3 will launch this topic with a report by CNN's Ashley Strickland.

(th)

#20 Re: Planetary transportation » Methanol for Transport Systems on Mars » 2026-09-03 08:35:20

As a follow up, I asked Gemini to think about what it will take to supply fuel and oxidizer for a landed expedition and construction operation on Mars.

Executive Summary: Feasibility of Integrated Methanol, LOX, and HTP Production on Mars

Evaluating an in-situ resource utilization (ISRU) facility capable of co-producing methanol (CH3OH), liquid oxygen (LOX), and high-test hydrogen peroxide (HTP) presents a highly viable engineering profile. A unified plant design minimizes total landed equipment mass by sharing primary feedstocks, thermal loops, and mechanical infrastructure.

1. Shared Feedstock Processing

All three target liquids consist solely of carbon (C), hydrogen (H), and oxygen (O). On Mars, these are derived from two primary sources:

  • Atmospheric Carbon Dioxide (CO2): Captured via cryogenic freezing or mechanical compression.

  • Subsurface Ice or Atmospheric Water (H2O): Extracted, filtered, and purified.

Because all output streams rely on identical raw inputs, the heavy front-end extraction units (mining drills, soil melters, atmospheric intake pumps) are fully shared rather than duplicated across separate production plants.

2. Simultaneous Co-Production Mechanics

Water electrolysis is required to generate the hydrogen needed for methanol synthesis:

2 H2O -> 2 H2 + O2

This reaction naturally releases a massive volume of pure oxygen as a primary byproduct.

  • Methanol Production: Catalytic hydrogenation of carbon dioxide combines hydrogen and carbon dioxide: CO2 + 3 H2 -> CH3OH + H2O.

  • LOX Production: The excess gaseous oxygen from electrolysis feeds directly into the cryogenic liquefaction train to produce LOX.

  • HTP Production: Direct electrochemical synthesis or partial oxidation pathways route a portion of the water and oxygen streams into hydrogen peroxide (H2O2) concentration loops.

This creates a self-balancing system where generating the fuel automatically yields the exact oxidizers required for the dual-oxidizer vehicle strategy.

3. Suitability for Autonomous and Teleoperated Deployment

A chemical processing architecture is particularly well-suited for early robotic deployment before human arrival:

  • Fluid-Based Operations: Modern chemical synthesis relies on pumps, pressure differentials, and automated valves, minimizing the need for complex robotic arms or manual maintenance during routine runs.

  • Energy Scaling: Production rates can be directly throttled to match available power, whether driven by continuous nuclear reactors or daytime solar arrays.

(th)

#21 Re: Planetary transportation » Methanol for Transport Systems on Mars » 2026-09-03 08:19:25

I asked Gemini to think about the tradeoffs for design of a vehicle for use in Mars, if the working fluid is Methanol.

Executive Summary: Storable Oxidizer and Fuel Architectures for Martian Vehicles

Evaluating energy storage and propellant options for Mars surface vehicles requires balancing volumetric efficiency, thermal storage constraints, and local resource availability. This summary reviews the trade-offs of using liquid methanol as a carbon-based fuel, compares non-nitrogen oxidizers, and presents a dual-oxidizer transit strategy.

1. Methanol as a Liquid Energy Carrier

Methanol (CH3OH) provides a stable liquid fuel at ambient temperatures and pressures. While hydrogen requires heavy cryogenic or high-pressure containment, methanol carries approximately 99 grams of hydrogen per liter within its liquid structure at room temperature. On Earth, atmospheric oxygen fully oxidizes methanol. Away from Earth, the full oxidizer mass must be carried or generated locally.

2. Evaluating Non-Nitrogen Oxidizers

Nitrogen is a scarce element in the Martian atmosphere (~1.9% of atmospheric volume), making nitrogen-based oxidizers (such as Nitric Acid or Nitrogen Tetroxide) undesirable for open-cycle surface combustion. Organic hydroperoxides like tert-Butyl Hydroperoxide (C4H10O2) are net oxygen-deficient and act as fuels rather than oxidizers.

The two primary non-nitrogen oxidizer candidates for pairing with methanol are:

  • * Liquid Oxygen (LOX): O2 (Cryogenic at -183 deg C)
    * High-Test Hydrogen Peroxide (HTP): 98% H2O2 / 2% H2O (Ambient liquid)

3. Mass and Volume Requirements per 1 Metric Ton of Methanol

To achieve full stoichiometric combustion of 1,000 kg (1.26 cubic meters) of methanol:

CH3OH + 1.5 O2 -> CO2 + 2 H2O

or using hydrogen peroxide:

CH3OH + 3 H2O2 -> CO2 + 5 H2O

  • Methanol Fuel Base: Mass = 1,000 kg | Volume = 1.26 m3 | State = Ambient Liquid
    * Option A (Liquid Oxygen): Mass = 1,498 kg | Volume = 1.31 m3 | State = Cryogenic (-183 deg C)
    * Option B (98% HTP): Mass = 3,250 kg | Volume = 2.27 m3 | State = Ambient Liquid
    * Total System (Methanol + LOX): Mass = 2,498 kg | Volume = 2.57 m3
    * Total System (Methanol + HTP): Mass = 4,250 kg | Volume = 3.53 m3

4. Operational Strategy: Dual-Oxidizer Transit and Standby Architecture

While 98% HTP imposes a 2.17x mass penalty over LOX due to bound water content, it requires zero active cooling hardware. Combining both oxidizers yields an optimized operational profile:

  • Outbound Transit (LOX-Dominated): The vehicle consumes LOX immediately during high-power transit. By matching the consumption rate to or above the natural boil-off rate, active cryocoolers and heavy vacuum Dewars are eliminated.
    * On-Site Standby (HTP-Dominated): Once at a remote work site, the vehicle switches to HTP for power generation and site operations. HTP remains a stable liquid across standard storage cycles without loss of inventory.
    * Auxiliary Utility: HTP can also be catalytically decomposed over a silver bed (2 H2O2 -> 2 H2O + O2 + Heat) to supply hot gas for mechanical drive, heat, or breathable oxygen recovery.

(th)

#22 Re: Planetary transportation » Methanol for Transport Systems on Mars » 2026-09-03 08:17:34

This post is reserved for an index to posts that may be contributed by NewMars members.

Index:
Post #3: Gemini review of options for vehicles using methanol as the fuel on Mars.

(th)

#23 Planetary transportation » Methanol for Transport Systems on Mars » 2026-09-03 08:16:36

tahanson43206
Replies: 3

This topic is inspired by Calliban's support for Methanol as an energy storage medium.

On Earth, oxygen is readily obtained from the atmosphere. On Mars, all machinery that uses a partially oxidized material such as Methanol will have to carry an oxidizer along. It appears that the mass of the oxidizer is likely to exceed the mass of the fuel.

Liquid Oxygen might be attractive if the application is such that the oxygen can be consumed immediately (or at a rate that precludes loss due to boil off).

However, for long term storage of an oxidizer, there appears to be at least one attractive candidate and there may be others.

In Post *3, I've asked Gemini to think about the problem, and to put us some number to help us understand the design tradeoffs.

This topic is available for development of detailed solutions for vehicles for transportation or job site activity.

(th)

#24 Re: Meta New Mars » Calliban Postings including links to notable contributions » 2026-09-03 07:10:46

For Calliban re new post in Acetate Manufacture ...

https://newmars.com/forums/viewtopic.ph … 28#p241328

Thank you for your support of this new topic.

We've been given a current price of $340 (or so) per ton of acetate for biological applications.

The product is produced from ground sourced material so is not what is needed for the Mars case.

In the spirit of the category, can you imagine a small (farm sized) plant that makes one of various substances you listed using solar or wind power and molecules available locally?

In the absence of practical knowledge, I can imagine a small plant able to accumulate a ton of high quality (pure) material over a period of time such as a year.

That idea may not be practical in the Real Universe.

On the other hand, Nature has figured out how to create gigantic trees on a long time scale.

(th)

#25 Re: Meta New Mars » OldFart1939 Postings and YouTube Video Presentation(s) » 2026-09-03 07:01:09

For Oldfart1939 re concept of "gravity receptor" in Post in Space Medicine topic ..

https://newmars.com/forums/viewtopic.ph … 26#p241326

Thank you for opening this line of inquiry.

This forum is not an SBIR opportunity of course, but we ** do ** have thoughtful and knowledgeable people still active.

I find the idea of a "gravity receptor" surprising, but that is just a lay person's response.  A ** real ** investigation would attempt to establish if there ** is ** such a thing.

Recently I noticed a random item in the Internet feed about sperm unable to find their way in microgravity.  I didn't pay much attention to the item but obviously it caught my attention.  I'm wondering if what you've described as a "gravity receptor" might be a characteristic of all matter and particularly highly organized matter such as living tissue.

in other words, perhaps ??? highly organized matter depends upon the gravity framework in which it evolved?

AI systems are evolving in a one gravity environment.

There are plans to move some of those systems to space for a variety of reasons.

It will be interesting to see if gravity is needed for any of their functionality.

***
A related inquiry is ... what happens if the molecules that support "life" in a one G environment are set loose in microgravity?

How will they know ** up or down ** in the absence of gravity?

It seems to me the research you are proposing might better be performed in microgravity, to see if life-as-we-know-it can exist without gravity as a reliable orientation framework.

(th)

Board footer

Powered by FluxBB