Privacy Notice

Last updated 15 October 2026

haas-lab lets you upload firmware and run it on physical ESP32-C3 hardware that we operate, then streams the serial output back to your browser. This notice describes what personal data that involves, and it describes the system as it is actually built rather than as we would like it to be.

In short

  • We collect your name, email address and avatar from Google or GitHub when you sign in, plus records of the jobs you run.
  • We use one third-party analytics service, PostHog, to see which parts of the product are used — but only if you turn it on. It is off until you do, and you can turn it off again at any time without losing access to anything. If analytics is on, you can also turn on session replay, a separate choice that sends PostHog a masked recording of the pages you use inside your account. It is off until you turn it on. The same two choices are also offered in your browser, signed in or not, and that choice governs the public pages; your account’s choice governs the pages inside your account, and we do not link the two. We do not use advertising and we do not sell personal data.
  • Your data is stored in Singapore (the database, with Prisma) and the United States (with Cloudflare, and with PostHog if you turn analytics on). Section 5 sets out exactly what goes where, and — because we are operated from Korea — flags that this is a transfer out of Korea.
  • To see, correct, export or delete your data, email privacy@haas-lab.com, or do it yourself from your profile page: it has a button to download your data and one to delete your account.

1.Who is responsible

haas-lab is operated by an individual based in the Republic of Korea. That person decides why and how the personal data described here is processed, and is the point of contact for any question about it.

There is no company behind haas-lab yet — no incorporated entity of any kind. We would rather tell you that than name one that does not exist. If that changes, this section changes with it and the date at the top moves.

Write to privacy@haas-lab.com. We aim to respond within 10 working days.

2.What we collect

We do not ask for a password. Everything in the first row arrives from the identity provider you choose at sign-in.

DataWhere it comes from
Account identity — your name, email address, profile-image URL, the provider you used (Google or GitHub) and your account identifier at that provider, and the date we first saw your provider report that address as confirmed. For GitHub we fetch the addresses on your GitHub account to check this, and keep only that date, not the list.Google or GitHub, when you sign in
Sign-in tokens — the access, refresh and ID tokens the provider issues for your account, and a session identifier for this browser. If your address is not yet recorded as confirmed, we may use them once to ask your provider whether it is.Google or GitHub, at sign-in
API tokens— a label, a creation and last-used timestamp, the token’s permissions, and, if you set them, a spend budget, what the token has spent against it, and when it expires. The token secret itself is stored only as a one-way hash and cannot be read back, by us or anyone else.Created by you
Starred boards— which boards you have starred on the board search, and when. Nobody but you sees your stars: not a board’s host, not another user.Created by you
Jobs— the firmware binary you upload or, for C source, your code and any data files you attach with their names; its size, the device it ran on, timestamps, status, cost, any simulation result, the serial output the board produced, and, when a job fails because of its firmware, what the bench reported — for C source, the compiler’s errors. What you type at a job’s console is passed to the board and not kept; if the firmware echoes it, it is part of the serial output. On a board another user hosts, it passes through their machine on the way (section 12).Created by you and by the hardware
Our bench’s log— the record our bench keeps of its own work: which job ran on which of our boards and when, and what failed and why; for C source that fails to build, the last lines of the compiler’s errors, which can quote your code.Written by our bench as it runs your job
Credits — your balance and a ledger of every credit movement, including its reason and any note attached.Generated by the service
Account standing — reputation tier and score, account status, any lock and its stated reason, hardware leases, and damage reports raised against a job.Generated by the service and by administrators
Feedback — the subject and body of anything you send us, and our reply.Created by you
Webhooks — any callback URL you configure and its delivery history.Created by you
Connection and diagnostic records — IP address, browser user-agent, requested URL and timing, together with application error logs. Cloudflare generates these in the course of serving the request.Automatic, on every request
Rate-limit counters — for some actions, such as deleting feedback, trying the demo or starting a setup, when you last took one, or how many you have taken in the current period and when it began, kept under a name made from your account, or from a token, bench or job of yours, or from your IP address for an action that does not need an account.Automatic, when you take one of those actions
Product analytics (only if you turn it on) — a record that a page was viewed, with the page path stripped of any job identifier; the browser, operating system, device type, screen size, timezone and language; the referring site; and a random identifier that links it to your account, which we create when you turn analytics on and store with your account. It lets PostHog group your visits, across your devices, under one record, and lets us have PostHog delete that record when you turn analytics off or close your account. It is never your name, email or account number, and a new one is made if you turn analytics on again. We do not include your IP address in what we send, and PostHog is set to discard the address your browser connects from. We do not send your name, email address, avatar, approximate location, firmware, filenames, serial output, feedback text, API-token names, or reports of errors in the page; session replay, if you turn it on, records console errors as described below.Your browser, when you have turned analytics on
Session replay (only if you turn it on, and only while analytics is on)— a recording of how you use the pages inside your haas-lab account (your dashboard, jobs and the rest of the app): each page's layout and structure, your pointer movement, clicks and scrolling, the size of your window, which boxes you tick or options you pick (never their labels), where you type and how many characters (never what), the page address with job identifiers removed, the error and warning messages the page prints to your browser's console, and the timing of the requests the page makes. Each character of page text becomes an asterisk, but spaces and line breaks are kept, so word and line lengths show. Every typed value becomes asterisks of its full length. Images, video and canvas are left out, and so are attributes that could carry content, such as links, labels and ids. Your balance, the account menu (your name, email and avatar), tokens, keys, invite links, serial output, job filenames and failure details are left out entirely. Elsewhere, your name where the dashboard greets you, and the name of anyone who hosts a board you can choose, are recorded only as asterisks. On these pages everything below the top bar is a blank box; the top bar (masked), the page address, your pointer and scrolling are still recorded: every page under /admin, the IDE, a job's live view, the welcome page, Tokens, My bench, Wallet and Profile. Your account's choice does not cover public pages such as the documentation and this privacy notice: they are not recorded under it, even while you are signed in. A console message is cut to its first line and 300 characters in all, with up to 20 lines naming where in the site's code it came from; in both, web addresses are shortened like the page address (another site's to its domain) and anything shaped like an email address, a key, an identifier or a long number is replaced. A message can quote words from the page, from what you typed or from a job, such as a name or a line of serial output; these cannot be recognised, so they would be recorded, and this is the one exception to what is left out above. Other console messages are not recorded at all. Of a request, only its timing, size, method, result code, shortened address and technical details such as its protocol and cache use are recorded, never what it sends or receives. On the pages listed above whose content is a blank box, no console message or request is recorded, nor in the five seconds after you leave one; a message that such a page's code still prints after that would be. No keystroke content is recorded. It is sent under the same random analytics identifier as analytics.Your browser, when you have turned session replay on
Analytics in your browser, for public pages (only if you tick it)— everyone, signed in or not, is offered analytics and session replay for the public pages through a panel on the home page and “Privacy choices” at the foot of every public page (the account menu has its own “Privacy choices”, for your account's choice). Nothing is collected until you tick analytics and the transfer to PostHog. Then, on public pages: a record of each page viewed, with its path, your browser, operating system, device type, screen size, timezone, language and referring site, and one haas_consentevent recording the notice version and what you chose, which is our record that you agreed. After you move between public pages and your account, your browser can also send an identify event, which carries only the random identifier and the temporary one the analytics tool made for this browser. It is sent under a random identifier made in your browser and kept there with your choice. We do not link it to an account, including when you sign in: this browser's choice governs public pages for everyone, signed in or not, and your account's own setting governs the pages inside the account.Your browser, when you have ticked analytics and the transfer
Session replay for visitors (only if you tick it) — a masked recording of the public pages, masked exactly as described for accounts above, with the same rules for console messages and requests, under the browser's identifier. On Docs and Join the page is blanked in a recording: only the address, the masked footer, your pointer and scrolling are recorded. Sign in sends nothing at all, neither analytics nor recording.Your browser, when you have ticked session replay

Firmware binaries are treated as your content. We do not inspect them beyond the automated safety checks needed to protect the hardware, described in the documentation. If you put personal data inside a firmware image or print it over the serial port, it lands in the job record like anything else.

3.Why we process it, and on what basis

PurposeBasis
Creating your account, signing you in, and keeping you signed inNecessary to perform our agreement with you
Queueing, flashing and running your firmware, and returning its serial outputNecessary to perform our agreement with you
Metering and settling credits, holding escrow, and keeping an audit trail of every balance changeNecessary to perform our agreement with you
Protecting shared hardware and the service from damage, abuse and overload — safety checks, rate limits, reputation, account locks and damage reports. A lower escrow deposit needs completed jobs and the email address on your haas-lab account confirmed by your sign-in providerOur legitimate interest in keeping the equipment and the service usable for everyone
Diagnosing faults and keeping the service runningOur legitimate interest in operating a working service
Answering the feedback and support messages you send usNecessary to perform our agreement with you
Running your job on a board another user hosts — your display name, your firmware or source code and its files, what you type at its console, and its serial output reach themYour choice of that board, made where the board is offered
Remembering the boards you star on the board search, so they stay at the top of your listYour choice, made by starring a board — unstar it and the record is gone
Seeing which parts of the product are used, so we work on the right thingsYour consent, which you can withdraw at any time
Seeing where people get stuck or confused on a page, so we can fix itYour separate consent to session replay, which you can withdraw at any time
In your browser, signed in or not: seeing what is used and where people get stuck on the public pagesYour consent, given separately for analytics, for session replay and for sending them to PostHog in the United States, which you can withdraw at any time

We do not build a profile of you to predict or influence what you do, we do not make automated decisions with legal or similarly significant effects about you, and we do not use your data to train machine-learning models. If you turn analytics on, we count what happens in the product, under a random identifier that we create when you turn analytics on and store with your account. It lets PostHog group your visits, across your devices, under one record, and lets us have PostHog delete that record when you turn analytics off or close your account. It is never your name, email or account number, and a new one is made if you turn analytics on again. We use analytics to see which features are used, so we know what to improve. If you also turn on session replay, we use the recordings only to see where people get stuck or confused on a page, or where it fails or is slow, so we can fix it.

4.Where it is stored

WhatWhere
Accounts, jobs, credits, tokens, feedback — every structured recordA managed PostgreSQL database operated by Prisma Data, Inc., in the Asia Pacific (Singapore) region — that is, in Singapore
Firmware binaries, C source and its data files, and stored serial logsCloudflare R2 object storage
Live serial output while a job is running, and its short replay bufferA Cloudflare Durable Object dedicated to that job, holding roughly the last 500 events
Rate-limit countersA Cloudflare Durable Object for each name counted
The application itself, and request and error logsCloudflare Workers, running on Cloudflare's global network
Our bench's logOn the computer that runs our bench
Product analytics events, if you have turned them onPostHog's service in the United States
Session recordings, if you have turned session replay onPostHog's service in the United States

Until August 2026 the service ran from a single workstation in Korea. It no longer does, and that is the reason this notice exists in its current form.

5.Who receives it, and overseas transfer

We do not sell personal data and we do not share it for anyone else’s marketing. Data reaches the following companies because they run infrastructure on our behalf, and they process it only on our instructions. Boards hosted by other users are the one recipient that is a person rather than a company we instruct; section 12 below says what a host receives and what they do not.

RecipientWhat they receiveCountry
Cloudflare, Inc.Everything transmitted to or from the site: account and job data in transit, firmware binaries, C source and its data files, serial logs and rate-limit counters at rest, live job feeds, and connection records including your IP addressUnited States, with processing across Cloudflare's global network, which includes facilities outside Korea
Prisma Data, Inc.All structured records — your account identity, sign-in tokens, jobs, credit ledger, API-token metadata, feedback and account standingIncorporated in the United States; the database itself is in Singapore (Asia Pacific (Singapore))
Google LLC / GitHub, Inc.Whichever you choose to sign in with learns that you signed in to haas-lab, and returns your name, email address and avatar to us, and whether that address is confirmed. GitHub also returns the addresses on your account; we use them to pick the address we keep when your GitHub email is private, and to check that it is confirmed, and do not store the list. Their own privacy notices govern what they then do with that.United States
PostHog, Inc.If you turn analytics on: a record of each page viewed, with its path and job identifiers removed, your browser, operating system, device type, screen size, timezone and language, the site that referred you, and a random identifier that we create for your account when you turn analytics on and store with it, which lets PostHog group your visits, across your devices, under one record and lets us have PostHog delete that record when you turn analytics off or close your account (a new one is made if you turn analytics on again). We do not include your IP address in what we send, and PostHog is set to discard the address your browser connects from. Not your name, email or avatar, and no reports of errors in the page. If you also turn session replay on: a masked recording of the pages inside your account, as described in section 2, under the same identifier, sent continuously over an encrypted connection while it is on, kept for 30 days. The same applies, for public pages, to anyone who ticks them in their browser, signed in or not, under the identifier kept there (a visitor's page views are the same, plus one haas_consent event recording the notice version and what was chosen). Everything is sent to e.haas-lab.com, our address, which PostHog runs as a reverse proxy that forwards it to PostHog, Inc.; PostHog's contact is privacy@posthog.com.United States

Analytics and session replay are sent to e.haas-lab.com, an address of ours that PostHog runs as a reverse proxy and that forwards to PostHog, Inc. in the United States. Because the address is ours, a tracker blocker may not recognise it, which is one reason we ask first and send nothing without a yes. The overseas-transfer items hold for visitors as for accounts: what is sent is listed in section 2, the country is the United States, it is sent as you browse after you say yes, the recipient and its contact are in the table above, its purpose and retention are in sections 3 and 6, and you can refuse by not ticking the transfer, which costs you nothing.

Because these companies and their facilities sit outside the Republic of Korea, using haas-lab necessarily involves transferring your personal data overseas, for the whole time your account exists, for the purposes in section 3. The categories transferred are the ones listed above. A self-hosted bench is different: it can be in any country, which we do not know and cannot name for you, and section 12 says what reaches one.

If you do not want your personal data transferred on these terms, do not create an account; if you already have one, write to us and we will close it and delete the data described in section 6. We cannot operate the service without these transfers, so refusing them and using haas-lab are not compatible.

We may also disclose data where the law requires it, and to professional advisers under a duty of confidence. If the business is ever sold or reorganised, we will tell you before your data moves to a different operator.

6.How long we keep it

Being plain about this: most of what we hold is kept until you delete it or your account is closed. Only three things are deleted on a schedule, and their rows below say when: rate-limit counters, invite links and our bench's older logs. What Cloudflare or PostHog holds for us is kept under their retention, as stated. We would rather say that than publish a retention schedule nothing enforces.

DataKept for
Account identity, credits and account standingAs long as your account is open
Sign-in tokens and browser sessionsUntil they expire, you sign out, or you disconnect the provider
API tokensUntil you revoke one or close your account
Boards you have starredUntil you unstar one or close your account
Bench invites, and invite links you createdAn invite lasts until you leave the bench, its host removes you, or either account or the bench is closed. An invite link is deleted within a day of expiring or being revoked
Jobs, firmware binaries, C source and serial logsAs long as your account is open
Data files attached to C source, and the list of their namesAs long as your account is open. Closing your account does not yet delete them; write to us and we will
Our bench's logDeleted with the bench's older logs: the logs of the bench's 20 most recent runs are kept, so how long that is depends on how often the bench restarts, and there is no fixed time limit
Credit-ledger entriesAs long as your account is open. Individual entries are never edited or removed while it is — the ledger is an audit trail, and a balance that cannot be reconstructed is not one
Feedback you send usUntil you delete it (on the Feedback page, in your list of suggested boards, or through the API) or close your account; our reply is deleted with it
Rate-limit countersUntil the period each one counts ends, from 30 seconds to a day depending on the action, and then deleted
Cloudflare request and error logsUnder Cloudflare's own retention for the logging features we have enabled; we do not extend it
Product analytics eventsHeld by PostHog for 1 year; we do not extend it. When you turn analytics off or close your account, we ask PostHog within two days to delete everything sent under your analytics identifier, including its record of the identifier. We wait about a day so that whatever your other devices sent before they stopped is included, because PostHog deletes only what it already holds when asked, and only once for each identifier. PostHog then removes the events in its deletion run, which it does at weekends. If the request fails we retry daily; if PostHog still has no record under the identifier 14 days after you turned analytics off or closed your account, we stop asking. Nothing is sent while a device is offline. If a device lost its connection or went to sleep while sending, whatever it sends after our request (which we make from 23 hours after you turned analytics off or closed your account) is not deleted by it, nor is the record PostHog makes for it; PostHog keeps them for 1 year. Turning analytics off stops sending at once in this browser. On your other devices it stops the next time a page is opened or changed there, and within 30 minutes even if neither happens. If you turned analytics on before we began keeping an identifier with your account, what was sent then went under an identifier kept only in your browser and never linked to your account, and PostHog has no person record for it, so we have nothing to ask PostHog to delete those events by; PostHog keeps them for 1 year. We remove that old identifier from your browser the next time you visit while signed in.
Session recordingsHeld by PostHog for 30 days; we do not extend it. When you turn session replay off, turn analytics off or close your account, we ask PostHog within two days to delete everything sent under your analytics identifier, recordings and analytics events both, in the way described for analytics events above. When you turn only session replay off, analytics carries on under a new identifier. Recording stops at once in this browser, and what had not yet been sent is discarded. On your other devices it stops the next time a page is opened or changed there, and within 30 minutes even if neither happens. If a device lost its connection or went to sleep while sending, whatever it sends after our request is not deleted by it; PostHog keeps it for 30 days.
Analytics events and recordings sent under this browser's identifier, from public pagesEvents are kept by PostHog for 1 year and recordings for 30 days; we do not extend either. If you clear your browser's storage before turning it off, we no longer know your identifier and can no longer have PostHog delete what was sent under it, so it lasts until those periods end.

When you close your account we delete your identity, jobs, firmware, C source, serial logs, tokens, feedback and ledger, but not yet the data files attached to C source (above). While a damage report that our own bench, or we, filed about one of your jobs is under review, closing your account waits until it is resolved, because closing it would delete the report. A report from a self-hosted bench about a free run does not make you wait: it is deleted with the job and is not reviewed. We may keep a minimal record that a given account existed and was closed where we need it to meet a legal obligation, and no longer than that requires.

7.Your rights, and how to use them

These rights are open to everyone who uses haas-lab, wherever you live. You can ask us to:

  • confirm whether we hold personal data about you, and give you a copy;
  • correct anything inaccurate;
  • export your data in a machine-readable form;
  • delete your account and the data described in section 6;
  • stop or restrict a particular use; and
  • explain anything in this notice that is unclear.

Email privacy@haas-lab.com from the address on your account. If you write from a different address we will ask you to prove control of the account one, because acting on an unverified deletion request is its own kind of breach.

Two of these are buttons on your profile page: one downloads a machine-readable copy of your data, and one deletes your account and the data in section 6. The rest — correcting a particular field, restricting one use, or closing an account that still has a damage report from our own bench under review — a person handles from the email above. You can also revoke an individual API token from your settings. You can also delete any feedback you sent, a board suggestion included, from the Feedback page or your list of suggested boards; it is deleted for good, with our reply. Deleting a single job is not available yet; write to us and we will.

You turn this browser's analytics and session replay off under “Privacy choices” at the foot of every public page, signed in or not; inside your account, the account menu's “Privacy choices” opens your account's choice. Sending stops at once in this browser. The browser then sends the identifier to our server, which queues the deletion, and 23 to 47 hours after it is queued we ask PostHog to delete everything sent under it. If our server cannot be reached or does not accept the request, the browser keeps the identifier and asks again on your next visit. Turning session replay off while analytics stays on does the same and starts a new identifier. Privacy choices shows the identifier, so you can write to privacy@haas-lab.comwith it to see or delete what was sent. If you answer “no” for your account, this browser's grant ends too: at once if you answer in the panel, and on the next signed-in page you open if you answer on the Profile page, in both cases only when the “no” is later than this browser's “yes”.

Where you live may give you further rights, or a specific way to enforce them. We act on any request the law that applies to you entitles you to; tell us what you are asking for, and you do not need to cite a statute to get it.

haas-lab is operated from the Republic of Korea, so if we do not resolve your request you may complain to Korea’s Personal Information Protection Commission, or the Korea Internet & Security Agency’s privacy call centre (dial 118). If your own country has a data-protection authority, you may take it there instead.

8.What we do not do

  • No advertising, no advertising identifiers, no ad networks.
  • We use one analytics service, PostHog, and only for people who turn it on. It tells us which pages are viewed; on its own it does not record your screen, your keystrokes, what you type into forms, or what you copy. If you also turn on session replay, PostHog records a masked picture of the pages inside your account under your account's choice, and of the public pages under your browser's choice: their layout, your pointer, clicks and scrolling, which boxes you tick or options you pick (never their labels), and where you type and how many characters. Text and what you type show only as asterisks, with the number of characters kept (spaces and line breaks are kept too, so word and line lengths show), apart from words a recorded console message quotes; it does not record which keys you press or what you copy; of what the page prints to the browser's console it records only error and warning messages, and of its requests only their timing, size, method, result code, shortened address and technical details, both cut down as section 2 describes; and it leaves out the balance, your name, email and avatar, tokens, keys, invite links, serial output, job filenames and failure details. On the admin pages, the IDE, a job's live view, the welcome page, Tokens, My bench, Wallet and Profile it records only a masked top bar, the page address, your pointer and scrolling, with everything below the top bar a blank box and no console message or request recorded, as section 2 describes. On Docs and Join the page is blanked in a recording: only the address, the masked footer, your pointer and scrolling are recorded. Sign in sends nothing at all, neither analytics nor recording. We do not share anything with anyone for their own marketing.
  • No selling or renting of personal data.
  • No use of your firmware, serial output or feedback to train machine-learning models.
  • No accounts for children. haas-lab is a developer tool and is not directed at anyone under 14. If we learn that a child has created an account we will delete it. Analytics and session replay, for accounts and for visitors, are only for people aged 14 or older, and the panel that offers them says so.
  • No health, payment-card, biometric or government-identifier data. Do not send it to us; if you do, we will delete it.

9.Keeping data safe

Access to production data is limited to the people who operate the service. API token secrets are stored only as one-way hashes. Traffic to the site is encrypted in transit. Administrator actions check a database-backed permission on every request rather than trusting the interface.

We are not going to tell you the service is “secure” or claim certification under any framework, because neither has been independently verified. If we ever discover a breach affecting your personal data, we will notify you and the relevant authority as the law requires.

10.Changes to this notice

When we change how data is handled — a new recipient, a new country, a new purpose — we will update this page and change the date at the top. For a change that materially affects you, we will tell you before it takes effect rather than after.

When this notice changes what analytics or session replay sends, a yes given under an older version is asked again. A “no”, for a visitor or for an account, is not asked again, even when the notice changes.

11.Cookies and similar technologies, and how to refuse them

Three kinds of storage are used in your browser.

Necessary. Keeping you signed in and protecting the sign-in form. Without these you cannot use an account, so there is nothing to turn off. They are set when you sign in.

Analytics, only if you turn it on.PostHog stores an identifier in your browser's local storage and a cookie so that separate visits can be counted as one person rather than several. They are set for haas-lab.com only, not for its other subdomains. Nothing of PostHog's is stored and nothing is sent until you turn analytics on.

Your choices, in local storage, not cookies. If you answer the panel on a public page, signed in or not, your choice and the random identifier made in your browser are kept in local storage under haas_visitor_consent, before and after a yes. After you close the panel with × without answering, the same item holds the date until which it stays closed. If you are signed in, closing the account panel with × keeps only that date, in local storage under haas_account_consent_dismissed_until; your answer itself is kept with your account, and the date is removed when you answer.

How to refuse.Analytics is off until you turn it on, so refusing means doing nothing. If you have turned it on in this browser for public pages, turn it off under “Privacy choices” at the foot of any public page. If you have turned it on in your account, turn it off under “Privacy choices” in the account menu or in your profile; we stop sending at once in this browser (on your other devices, the next time a page is opened or changed there, and within 30 minutes even if neither happens), clear what is stored in your browser, and within two days ask PostHog to delete everything sent under your analytics identifier. Session replay is a separate switch in the same place, available only while analytics is on and off until you turn it on: turning it off stops recording in the same way and has PostHog delete everything sent under your analytics identifier, recordings included, after which analytics carries on under a new identifier. Turning analytics off also turns session replay off. You can also block or delete these through your browser's own settings, and you can use a tracker blocker. Analytics is sent to e.haas-lab.com, an address of ours that PostHog runs as a reverse proxy, so a blocker may not recognise it. Turning analytics off changes nothing else: every part of haas-lab works the same either way.

12.Self-hosted benches

Some boards on haas-lab are hosted by other users on their own machines. You can tell which: they are listed as self-hosted, with the display name of the person hosting them, and you choose them by name — a job never lands on one unless you picked it.

When you run a job on a self-hosted board, these reach that host’s machine: your firmware or, for C source, your code and any files you attach to it, which their machine downloads to compile; everything you type at the job’s console, which passes through their machine to the board; and the serial output the board produces. Anyone with access to that machine can read them. The host can also see your display name, the board, the job’s status and when it ran. They cannot see your email address. Runs on self-hosted boards are free.

Their bench deletes your firmware or code and files when the job ends, but its own log can keep the last lines of a compiler error, which can quote your code, and we cannot control what a host keeps on their machine. If you would rather none of this reached another person’s machine, choose a board on our bench instead.

A host can be anywhere in the world. We do not collect or verify where a self-hosted bench is, so choosing one can send your firmware or code and its files, what you type, its serial output and your display name to a country we cannot name for you.

We do not operate a self-hosted board and we do not guarantee one. We promise nothing about whether it is there tomorrow, how it behaves, or what its host does with the machine it is plugged into. If a host reports that your job damaged their board, that report counts against your reputation exactly as one from our own bench does, even though the run cost you nothing. Because the run was free, it does not delay closing your account: if you close it first, the report is deleted with the job and is not reviewed.

If you host a bench, a job’s firmware can use your board’s radio and receive what is transmitted around your machine — the names and addresses of nearby networks and devices, for example. We do not collect that. But anything the firmware prints becomes the job’s serial output, which we store and keep as section 6 describes and which its submitter reads.

Your bench also tells us how its boards are connected to your machine: the USB controller, the hubs the boards are on, and the port each board is in, with each board’s name and serial number. We use it so that you, and we when you ask for help, can see which port a board is in without being at your desk. It does not send anything else you have plugged in, and we refuse it if it does — including anything labelled as a board that your bench has not registered as one. We keep the latest one with your bench, show it to you on your bench page and to our administrators, and delete it when your bench or your account is deleted. A board’s name and serial number are not deleted with it: we already hold them as the board’s own record, and when your account is deleted the board stays on that record, with its job history and no longer linked to you.

If you host a bench, the people you open it to can see its name, its boards’ status and your display name beside them. If someone invites you to their bench by typing your email address, they are told whether an account exists for it and see the display name on that account. While the invite stands, the host who invited you sees your display name and the email address they invited, as it is on your account. If you join through an invite link a host shared, the host sees your display name and not your email address. A link is kept only as a one-way hash of its secret part, which your browser keeps out of the address it sends us. You can leave a bench you joined from My bench.


Questions about this notice go to privacy@haas-lab.com.