Sunday 16 April 2023

Autistic Burnout Mitigation

I have been under various levels of Autistic burnout and poor mental health for years, and I developed some mitigation strategies over time. I made a brain dump about this for a Mastodon post, and since a few people found it helpful, I decided to clean it up and post it here.

I intentionally use the term mitigation in the title. In other words, the things listed here reduce the impact of burnout for me, but I'm still in burnout.


While writing this, I kept getting stuck, wanting to expand with all the other related concepts to clarify what I meant. That way lies never actually publishing this, so instead, I will focus on the main topic and then try hard to convince my brain it's OK to ignore that I haven't defined burnout etc.


If you haven't heard about Spoon Theory, having a quick read about that will be helpful - in general, and for this post.


The Mitigation List

The ordering of the list is semi-random, and I haven't differentiated between short, medium, and long-term mitigations.


  • Walking in nature. I was sceptical of this as it feels like a cliche, but it helps me. I can't feel any change the same day, but I can typically clearly feel an improvement in mental health the following days. I have two different places I go, so it's also pretty routine, and I usually walk when there are fewer people around - both mean less risk of unexpected spoon usage. One caveat for walking in nature is that I need to be relatively sure the problem isn't that I'm "physically sick" with, e.g. a cold, as then walking may drain the rest of my energy and make me feel worse.

  • Spoon budgeting. I try not to use more spoons than I have each day, and after high spoon activities, I keep the rest of the day light. Sometimes this can extend to knowing spoon use for one day will borrow spoons from future days, so I plan those follow-up days after that. For example, travel (especially with kids) is a very high-spoon event, so I will plan at least one day to recover.

  • Determining what costs many spoons. It's only possible to budget spoons if you have a reasonable idea of what things will cost many spoons. This is rather difficult for me, as I often don't feel the effects of spoon depletion until later. For social stuff, I also find it hard since, for some things, I still need to get a better idea of what is the expensive part. E.g. for work meetings, while I know some types are costly, for some (mainly the less formal ones), it can vary a lot how expensive they are - and some can be mostly "free".

  • Determining silent spoon drains. Some situations don't drain energy quickly but are quiet continuous background drains that I frequently only notice after I have spent many spoons. Some examples:

    • Even if it's not loud enough to cause immediate issues, continuous background noise slowly drains me over hours.

    • When I'm on-call for work (if something breaks, my phone makes a lot of noise, and I have to fix it) - even when I don't get paged to have to do anything, it's in the back of my mind as a risk all the time, and drains spoons.

    • High uncertainty events like work having rounds of layoffs, meaning I don't know if I will have a job in a month.

  • Fight hard to get my sleep under control. My mental health heavily correlates with poor sleep, so poor mental health leads to worse sleep, and worse sleep lead to poor mental health. For me, the key is keeping a consistent schedule going to bed and waking up at a similar time each day. That is hard, and when my sleep is messed up, it usually takes me weeks to recover - and sometimes longer. One part of this challenge is that late evening is the quiet time when I can relax, so there is a kind of incentive to go to bed late. I use a fitness tracker, so I have some data for how much I sleep, which can motivate me to course correct and see if sleep may be a significant factor when I'm feeling poorly.

  • Listen to my body and brain. If my body starts to complain, try to listen and react. E.g. even though I may be able to continue for a while, if I'm starting to feel overwhelmed or anxious, taking a break is better to recover and avoid becoming completely overwhelmed.

  • Sensory protection. I protect myself sensory-wise as much as possible. I wear noise-cancelling headphones most of the time when there are people around. A great direct side effect of this is that it's less of a problem with my kids being loud, so they don't have to worry about how their (normal for kids) noise level affects me. I also dim the light more and "hide" in a quiet room when needed.

  • Tactically do less / do as little as possible. I don't try to fight through it when feeling poorly, but I reduce the program to as little as possible. I will postpone any non-essential tasks (this is why kitchen chaos correlates to mental health for me :-) ). For required tasks, simplify as much as possible. For example, if I need to make/get food for my family, I take the spoon-wise cheapest option, such as making stuff I can do without thinking). Doing less for a while builds up a backlog of important but non-critical things - so it will probably have a negative impact at some point.

  • Strategically do less. Realising that I can only do some of the things that many other people can and may want to do, so I should not try to do everything. E.g. while I can work, I can't work full time at the moment, so I work 60%. For some family situations, I need to skip them. E.g. I did not travel to my country of birth with my partner and kids for Christmas this year but stayed home.

  • Less compact travel program. As an immigrant with most of my family living in my country of birth, seeing family is a bit more complicated as they are 2 hours by plane away. It's tempting to pack each trip with visiting as many people as possible and doing as much as possible. That, however, leads to burnout or at least exhaustion.

  • Accepting that doing less is OK. Doing less applies to day-to-day stuff and longer-term things. Especially things like seeing family less and skipping things like Christmas is OK. It's still a balancing act. I'm not fully there in internalising that doing less is OK, but I'm trying.

  • Partner load sharing. This, of course, isn't fundamental to an autism/burnout context, but in general, my partner and I try to divide needed work in a way which works for both of us. While it's important to do less, it's also essential for me that it doesn't mean dumping everything on my partner - especially making it become the default. My partner may do more when feeling extra burned out, but I try to do more when she has less capacity.

  • Try not to think about external stressors. This is mainly for things that take a while, especially around uncertainty (job-related or anything else significantly impacting my life). I try not to think about it except when really "needed". Doing this is hard to impossible, depending on what it is, but it can help when it works. One reason I listen to audiobooks when cooking or doing other chores is to reduce my brain's tendency to dwell on those stressors.

  • Internalising that improvements take a long time, possibly years. Not that it's always bad for years, but there are mostly no quick fixes. Mental health tracking, where I mark things daily as Terrible, Bad, Meh, Good or Great, helps with perspective.

  • Dropping social norms at home and doing what works for me. Specifically, one of the "rules" I had internalised was, e.g. "Families should always eat together", except if I'm overstimulated, I can barely acknowledge people around me, so separately eating some of the time work much better (and always eating separately works better, that also seems perfectly fine).

  • Talking to my therapist. Again, I can't feel quick fixes here, but I think it helps over time. I'm relatively new to therapy. I only started seeing a therapist for the first time less than six months ago and have only been with one, but for me, having an autistic and LGBTQI+-friendly therapist was vital. I chose an autistic therapist who themselves are LGBTQI+ which made me more comfortable talking to them but also meant I didn't have to spend time explaining core autistic experiences etc., as they already know about those.

  • Shopping online. I never was particularly keen on shopping in stores due to the required social interactions, and with the pandemic, I got even less inclined to physical shops. Instead, I order stuff online, including a weekly grocery delivery where we get the most food. Delivery still frequently means interaction with a person I don't know, but mostly it can be scripted, and they need to go to the next delivery, so the interaction is shorter than a till etc.


A number of these things were only possible due to being privileged in many dimensions, especially financially and having an understanding family. Details of that are too complex for this post, but it's important to point out since it may mean some things I have been able to do will not be possible for some people.


One thing you may notice from the determining spoon usage is that I don't look back and try to identify what costs spoons. I don't remember things well enough to do this due to my probable SDAM (see my old post about that). For people who can remember things better, looking back probably is valuable.

Autistic Explain-The-Possible-Misunderstandings-Sections

I use the term autistic burnout here to describe my general feeling of poor mental health since I think it's the term that fits best, but I haven't seen a single clear definition of burnout. I use burnout fairly broadly, both for the short term (a couple of days) and long term over months or years.


I don't consider this advice! As in, these are things which I have been doing to try and improve my mental health short, medium, and long term - I feel "advice" requires more data points than just me.


The post also contains some items which are perhaps less specifically burnout related but more about life as an autistic adult. I decided not to fix this, as it's unclear how to split the two apart at this point in my autistic journey.


I admit that I may not be entirely consistent in all terms used, but I decided not to try and fix it as it would probably require writing a dictionary first :-).


The ":-)" are smilies meaning happy / the previous is said in fun. I prefer them over emojis since they are less ambiguous in having fewer nuances - that works better for my alexithymia :-).

Questions / Comments

If you have any questions about what I wrote, please reach out. The best channel is @simonlbn@autistics.life on Mastodon. You can reply to my mastodon post about this blog post at https://autistics.life/@simonlbn/110208919791795776.


Monday 7 September 2020

Installing Home Assistant on bhyve

Introduction

This week I migrated my Home Assistant from a Windows 10 Hyper-V VM to FreeBSD bhyve VM. It was all pretty straightforward, but I thought it could be useful to document the procedure. While I did a migration, it's mostly the same procedure for a new installation in a bhyve VM.

I have been running Home Assistant for a while, on a number of different platforms:
  • On a Raspberry Pi Zero W which worked OK as proof of concept, but it has too little RAM so it's very slow.
  • On a Raspberry Pi 3 B which worked OK, though slow for some things, until the SD card died without warning.
  • In a Windows 10 Hyper-V VM which works well, but the particular PC isn't really intended to run VMs.
While Home Assistant was running under Hyper-V I moved data storage to a separate Postgresql database server which means another VM to manage, but also has the positive effect that the Home Assistant backups / snapshots are much smaller and migrations are simpler.

I tried to get the Home Assistant VM image to work with the bhyve grub boot loader to have a serial console, but I couldn't get that to work so I ended up going with UEFI boot instead. It works fine, but means you have to use VNC for console access. Since you rarely need console access for Home Assistant this is not a big issue.

Assumptions

  • You already have a working bhyve setup with vm-bhyve.
  • You have the bhyve-firmware and qemu-utils packages installed.
    • sudo pkg install bhyve-firmware qemu-utils
  • You have a running DHCP server on your network.
  • The root directory of your vm-bhyve is at ${VMDIR}.

Installation

Create a Home Assistant vm-bhyve template, by adding the following in ${VMDIR}/.templates/homeassistant.conf and adjust as needed:

loader="uefi"
cpu=1
memory=1G
graphics="yes"
# graphics_listen="127.0.0.1"
vnc_password="MY_VERY_SECRET_PASSWORD"

disk0_name="disk0"
# If you don't use ZFS, comment out the next line.
disk0_dev="sparse-zvol"
disk0_type="virtio-blk"

network0_type="virtio-net"
network0_switch="public"

Change the vnc_password to something random. Depending on your local network you may want to enable graphics_listen="127.0.0.1" if you don't want to have VNC on an IP directly.

Download the Home Assistant latest image. You may want to check the Home Assistant documentation if a newer image has come out since this blog post was written.

sudo vm img https://github.com/home-assistant/operating-system/releases/download/4.12/hassos_ova-4.12.vmdk.gz

Create the VM called hass0. By default you get a 20 GiB disk image. This is plenty if you have a small install or an external database server. If either of those are not true, consider a large disk image (By adding e.g. adding -s 40G to the command line).

sudo vm create -t homeassistant -i hassos_ova-4.12.vmdk hass0

Start the VM.

sudo vm start hass0

After Home Assistant has started (expect this to take at least some minutes), you may also be able to access it using mDNS at http://homeassistant.local:8123/. If not, find the IP address of the home assistant VM on your DHCP server. I haven't found an easy way to get the IP addresses from the VM itself. Then access the Home Assistant web interface on port 8123: https://192.168.0.42:8123/.

If you want to fix the IP address of home assistant just set IP on DHCP server and reboot the VM.

sudo vm restart hass0

 If you need to find the MAC address of the VM's network interface, you can run:

grep network0_mac ${VMDIR}/hass0/hass0.conf 

Configuration

Now you can follow the normal Home Assistant documentation at https://www.home-assistant.io/getting-started/onboarding/.

For my case of moving an existing installation, I simply did a basic Home Assistant setup, installed and configured the Samba addon, copied a recent backup / snapshot from my old installation, shut down the old VM, on the Home Assistant Supervisor Snapshot page (/hassio/snapshots), found the snapshot then selected "Wipe & Restore". Since I'm using an external database server I didn't have to worry about the snapshot being fully up to date. Do note for migrations, that if you are using the default built in SQLite there is a risk the database is not consistent when the snapshot was created.

You should now hopefully have a working Home Assistant installation.

Console

If you need to access the VM console first you can find the VNC port by running:

sudo vm list

Then connect with a VNC client.

Tip: For the Mac VNC Viewer I ran into that at times on connect it failed with a "RFB Protocol Error: Invalid message type 170". This can be worked around by changing Picture Quality from Automatic to High.

Wednesday 4 March 2020

Post Mortem: Unavailability of Good Work-From-Home Coffee

Unavailability of Good Work-From-Home Coffee


Date: 2020-03-04


Authors: @simonlbn


Status: In progress, but published as draft; IMPACT ONGOING.


Summary: During mandatory Work From Home for User from Internet Conglomerate, redundancy of Coffee Makers went from N to N-1, where N was 1. This lack of redundancy had not been considered in advance.


Background: User, who resides in Ireland, grew up in Denmark and as such strongly prefers filter coffee over espresso, instant coffee and tea for caffeine delivery mechanism / hot beverage of choice. While instant coffee and tea can be used for emergency backup, they cannot be considered full mitigation. While switching and diversifying the delivery mechanism / hot beverage of choice to include more tea is in progress, the rollout is ongoing and will not be complete for the foreseeable future.

User had just returned home to Ireland from the United States (trip included both west and east coast), and was at the time of the incident suffering from severe jet lag.


Impact: Reduced productivity for User on Work from Home day and reduced availability while external temporary mitigation was applied. New machine has to be acquired and delivered extending the downtime. May not have good coffee for the weekend.


Root Causes: During resource provisioning, only a single coffee maker had been acquired. Glass is a bad material for a coffee pot for people suffering from jet lag.


Trigger: Severe jet lag meant extra poor hand eye coordination while returning glass pot to coffee maker, causing impact between glass pot and metal kitchen roll stand, with immediate failure of glass pot as a result.


Resolution: NOTE IMPACT ONGOING - Acquired new primary coffee maker and backup drip coffee maker bringing User to N+1 for good Coffee production. To reduce the risk of recurrence, a new primary coffee maker will not have glass pot.


Detection: User immediately noticed an unfortunate shattering sound while operating coffee makers glass pot. No monitoring in place to detect failure mode.


Lessons Learned

What went well

  • Shattered glass was immediately removed preventing further and worse incidents.
  • Instant coffee and tea were both available as emergency backup if the issue escalated.

What went wrong

  • In the years preceding the incident User had not properly considered redundancy of at-home coffee making equipment.
  • Coffee pots should not be made of glass due to the risk of catastrophic failure.
  • [Ongoing] Backup coffee maker was possibly ordered too late to be delivered on Friday, extending the outage over the weekend.

Where we got lucky

  • First coffee pot of the day had been completed and had just been filled into a thermal (metal) coffee pot providing coffee for the before noon period.
  • Ongoing jetlag meant expected productivity was already very low, so effective productively loss probably smaller than at other times.
  • Mandatory work from home got lifted for the day after the incident (2020-03-05), so at-work coffee could be acquired for primary consumption.
  • The coffee maker was reasonably old so it can be replaced with reasonably good conscience, especially since the User had considered a new coffee maker with a thermal coffee pot regardless of incident.
  • Only the User is an active user of the Coffee Making facilities at the location, so the outage only impacts primary User.

Action Items

Action Item

Type

Owner

Status

Remove shattered glass.

prevent

@simonlbn

Done.

Acquire temporary external pre-produced coffee.

mitigate

@simonlbn

Done.

Acquire new primary coffee maker with non-glass pot.

prevent

@simonlbn

In progress.

Acquire backup coffee maker.

prevent

@simonlbn

In progress.

Recycle / dispose of the old old coffee maker.

cleanup.

@simonlbn

Not started.



Timeline (all times UTC)

2020-02-28

20:00 User (@simonlbn) leaves San Francisco International Airport (SFO/KSFO) for New York John F Kennedy Airport (JFK/KJFK).

2020-03-02

23:50 User leaves New York John F Kennedy Airport (JFK/KJFK) for London Heathrow Airport (LHR/EGLL) on British Airways flight 174 on a Boeing 777-200ER (registration G-RAES).

2020-03-03

06:46 User arrives at London Heathrow Airport.

08:20 User leaves London Heathrow Airport for Dublin Airport (DUB/EIDW) on British Airways flight 830 on an Airbus A319 (registration G-EUPW).

09:45 User arrives at Dublin Airport.

2020-03-04

06:55 User woken up by biological alarm clocks (also known as children) after 4 + 2 hours of sleep.

08:20 First coffee of the day started.

08:30 Coffee is poured from glass pot to metal thermal coffee pot.

08:31 INCIDENT BEGINS Glass pot is attempted returned to the coffee maker and hits the metal kitchen roll holder in the process partly shattering the pot.

11:30 No more decent in-house coffee is available.

12:00 External coffee acquired causing unavailability of User while acquisition occurs.

21:02 New backup coffee maker ordered (pour over set which does not take up too much space when not in use).

2020-03-06 (expected)

??:?? INCIDENT MITIGATED New backup coffee maker delivered.

2020-03-09 (expected)

??:?? INCIDENT ENDS New primary coffee maker delivered.

??:?? New primary coffee maker installed and smoke tested.


Author note

This was created and published while Author still was suffering from jet lag without independent review, so typos and other errors are likely even though this has been grammatically checked by the Google Docs AI.


Author was unable to find a nice document template to use, so was inspired by the structure template from https://landing.google.com/sre/sre-book/chapters/postmortem/ (part of the Google SRE book).


This document was created without using Internet Conglomerate resources, and as such is © 2020 Simon L. B. Nielsen. It also should not be considered endorsed by any Internet Conglomerates real of fictious.

Sunday 6 October 2019

Mu One User Review

Photo of Mu One with IE/UK, EU, and US plugs.

Introduction

A colleague recently pointed me at the Mu One USB-C charger which seemed like a perfect fit for my travel kit, so I bought one. I travel a number of times a year and hate to be somewhere not have charger, cables etc. when I need it, so I try to have all the things I need in my travel kit while of course still need to be able to carry it.

I have used the the single and dual port USB-A Mu chargers for a couple of years and have been really happy with them, mainly as they allows a Irish / UK power plug that's flat, which mean they fit well in my travel kit.

I don't have any USB-C test equipment, so I can't verify the technical details of the charger, but I have tried to put the device through some amount of normal use. I'm writing this up as I in the past have found it hard to find more practical information about the more niche electronic devices I'm interested in - so hopefully this is useful for other people.

If you have any questions, do feel free to reach out to me, e.g. through @simonlbn on Twitter.

For photos in higher resolution see https://qxnitro.smugmug.com/Blog/Mu-one-user-review.

Conclusion

A good travel / portable power adaptor, but a bit on the expensive side for other use-cases.

The Good

  • Very compact and flat, especially for the Irish / UK plugs, meaning it is easy to fit in travel kits.
  • It's light enough that having it directly plug into a socket without falling out is not a problem.
  • Plugs interchangeable to existing USB-A Mu chargers.

The Less Good

  • Rather expensive.
  • Not USB-IF certified.
  • No Australian plug.
Photo of Mu One in travel kit holder.

The Mu One Overview and Specifications

The Mu One International is a 45W USB-C charger which supports Power Delivery and has changeable international plugs. It mostly makes sense as a travel / portable charger, though of course can be used as a generic USB-C charger if you want.

The main features are:
  • It's fairly small.
  • The charger and the plugs are flat, so it fits simpler to fit into travel kits.
  • It comes with 3 different detachable plugs:
It doesn't come with a USB-C cable, but rather has a USB-C receptacle, so you need to buy a cable yourself.

As far as I can see, the Mu One is not USB-IF certified - at least I can't find it on the USB website, and the product does not mention USB-IF anywhere. Given all the quirks of USB-C, I prefer products which have at least tried to prove they are USB spec compliant. Not a dealbreaker but is a minus.
On the note I should mention that the Irish / UK plug is standard compliant according to Mu, which may not be the case for other similar plugs.

As of this writing the price is 60 GBP in the Mu store. There exists a version with only the Irish / UK plug called Mu One: British, which is a bit cheaper at 50 GBP. I haven't tried this version. For price reference, my primary normal USB-C charger, the Nekteck USB C Wall Charger 4-Port 72W USB Charger, is 32 GBP.
Photo of Mu One one side.

According to the specifications, the charger can do the following voltage and amps:
  • 5V 3A
  • 9V 3A
  • 15V 3A
  • 20V 2.25A


Using the Mu One

Overall, it just works. For me the primary feature is the slim design and specifically the slim Irish / UK plug, which means I can fit the USB C charger in my electronics kit bag.

I previously primarily traveled with the Apple USB-C 61W charger in my carry-on. The charger itself takes up more space than the Mu One, but also has the problem that it's so heavy that when used with an adaptor plug, rather than with a cable, it may fall out especially with US plug. This means I generally also travel with an Apple power cable taking up even more space. Given how much lighter the Mu One is, I don't think it will be a problem falling out the socket. Use so far with EU plug has indicated this will not be an issue.

The plugs fit well on the charger, and has a tighter fit with the charger than the Mu USB-A chargers.

The plugs do seem to move a bit, but not enough for it to loose connection.

It has worked without issue with the various devices I tried connecting to it, that includes:
  • Apple Macbook Pro 15" 2017 (primary devices I tested most with)
  • Apple iPhone 8, through USB-C lightning adapter
  • Lenovo ThinkPad X1 Yoga Gen 3
  • Google Pixel 3
  • Nintendo Switch
It does get somewhat hot when in use at full power, but not burning or significantly more so than other compact high power chargers I have tried.

A nice minor feature is lack of status light so you get brightly lit room when trying to sleep.

I noticed that since the charger plugs directly into a wall, a long USB-C cable may be advisable to be able to use a laptop while it's plugged in - at least my 1M cable has been to short a few times. My other laptop / USB-C chargers have cable on the 220/110V side so length of USB-C cable has been less of an issue for me with those chargers.

Disclaimer

As of this writing I only had the charger for a couple of weeks and the only trip I have used it on a family trip, so I haven't tried it in various airports / airplanes etc. yet, but only "at destination".

I have no financial interest in Mu, or otherwise get any money for writing about this. No links are affiliate links.

English is my second language - I would be really surprised if there we not be spelling or grammatical mistakes. Hopefully they don't disturb significantly from the content.

I'm not really happy with how Blogger formatted this, but until I start writing more - it's not worth the effort to try and fix by switching to another system.

Photo of Mu One in a wall plug.

Friday 7 October 2016

MySensors Gateway using ESP8266

MySensors Gateway Wemos D1 R1 / Hobby Components ESP8266-D1
Picture of Hobby Components ESP8266-D1 with NRF24L01+ and DS18B20.
Hobby Components ESP8266-D1 with NRF24L01+ and DS18B20.

My current "home automation" project is connecting a bunch of temperature sensors (primary based on Maxim DS18B20) to Arduino and similar boards, to get detailed temperature data from different rooms. I have been experimenting with a number of ways of doing this. Initially I hacked together various Arduino code bits myself, but when I had to start looking at network transport encodings, it felt like reinventing wheels a bit much, so that lead to looking into MySensors.

I wanted to try setting up a MySensors gateway on my Hobby Components ESP8266-D1 which meant I needed to connect a NRF24L01+ radio. This allows my Arduino Uno boards to send their temperature measurements to the gateway for wherever they end up in the end.

The board pinout on this board is different from the base MySensors documentation for an ESP8266 (which is based on NodeMCU), so I had to map board to radio pins myself. Nothing magical, but might be useful for somebody else to save some time.

I don't know if I will end up using MySensors in the long term, but it looks interesting rather than spending too much time coding "everything" myself.

I got it working talking to a MySensors Arduino Uno connected to an DS18B20, so the pinout below has been tested - but of course USE AT YOUR OWN RISK.

Hardware

The Hobby Components ESP8266-D1 seems to have the same pinout as Wemos D1 R1 (not R2 - that has different pinout), but I haven't fully confirmed this.

The NRF24L01+ radio is on the radio side connected as described on the MySensors Wiring page, though my cable has brown instead of black for ground / GND.

Pinout table

Board PIN SPI / Type Color ES8266 PIN
GND GND Brown GND
VCC VCC 3.3V Red VCC
D4 CE Orange GPIO4
D5 SCK Green GPIO14
D6 MISO Violet GPIO12
D7 MOSI Blue GPIO13
D10 CSN/CS Yellow GPIO15

Credit / Source

The pinout for Wemos D1 R1 was constructed by mapping board pin to ESP8266 pins using PDF from "roboticboyer" in https://github.com/esp8266/Arduino/issues/1748#issue-139829277.

Mapping for what MySensors ESP8266 gateway expected to use came from the source in GatewayESP8266.ino which maps GPIO pins from ES8266 to nRF24L01+ pins / SPIO names.

Saturday 1 October 2016

New Blog

Hello World,

I recently started playing with what's probably generally referred to as "home automation", so I wanted a place to dump notes about what I found both to organize my thoughts and in case it's useful to anyone else.

This particular post is of course just as much to see if Blogger is working, and how to set it up.