# The Basics
The first `boot.py` will be executed when the interpreter starts. This file should contain only code associated with configuration. Then `main.py` will run. It is within this `main.py` that you will place your entry point code.
## Connecting to a micropython board using screen on a Mac
```
screen /dev/cu.SLAB_USBtoUART 115200
```
To detach from a screen session first press `Ctrl-A` then `Ctrl-D` .
To resume a detach session use:
```
screen -r
```
To kill a screen session press `Ctrl-A` then `k` . You will be prompted to confirm with `y\n` whether to kill the session or not.
## Memory Usage
These two functions can help you determine approximate memory usage.
```
import gc
import os
def df():
s = os.statvfs('//')
return ('{0} MB'.format((s[0]*s[3])/1048576))
def free(full=False):
gc.collect()
F = gc.mem_free()
A = gc.mem_alloc()
T = F+A
P = '{0:.2f}%'.format(F/T*100)
if not full: return P
else : return ('Total:{0} Free:{1} ({2})'.format(T,F,P))
```
# installing micropython on esp32
1. Delete flash
```
esptool.py --port /dev/cu.SLAB_USBtoUART erase_flash
```
For an ESP32-S3
```
esptool.py --chip esp32-s3 --port /dev/cu.SLAB_USBtoUART erase_flash
```
2. If you have external spi ram (4MB) you want to use the spiram bin.
```
esptool.py --chip esp32 --port /dev/cu.SLAB_USBtoUART --baud 460800 write_flash -z 0x1000 ./binaries/esp32-idf4-20210202-v1.14.bin
```
For an ESP32-S3
```
esptool.py --chip esp32-s3 --port /dev/cu.SLAB_USBtoUART --baud 460800 write_flash -z 0x0000 ./binaries/GENERIC_S3_SPIRAM-20220117-v1.18.bin
```