Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,22 @@

What changed in each version of OpenTag Station, newest first.

## 1.0.1-beta.6

Pre-release for testers. One new setting. Not run on a WT32 by the author; see "Needs a station".

**Display**
- **The screen can be turned upside down.** Browser: **Settings → Display → Screen orientation**,
**Normal** or **Upside down (turned 180°)**. The touchscreen, including touch, turns at once and
keeps the orientation after a restart. Settings key `device.display_rotation`, `0` or `180`;
`GET /api/v1/config` reports it and `PATCH /api/v1/config` accepts it under `device`. Any other
value is refused. Older saved settings without the key mean `0`.

**Needs a station**
- Set the orientation to upside down in the browser and check that the screen turns without a
restart, that touches land where they are shown (tap each of the five pages), that the setting
survives a reboot, and that **Normal** turns it back.

## 1.0.1-beta.5

Pre-release for testers. First step of the tag-support roadmap (#93): the reader now also looks
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,9 @@ The station writes to two things you care about, your tags and your inventory, s
| NFC reader | ELECHOUSE NFC_ST25R3916B module, switched to I²C mode |
| Tags | Blank NXP ICODE SLIX2 stickers (ISO 15693 / NFC-V), for OpenPrintTag. NTAG and MIFARE tags are not detected yet (see the [roadmap](#roadmap)). See [Which tags it works with](#which-tags-it-works-with). |
| Power | Regulated 5 V over USB |
| Enclosure | A three-part printed case, no supports, about 299 g of filament: [OpenTag-Station on Printables](https://www.printables.com/model/1885872-opentag-station) (CC BY-NC-SA 4.0). Assembly is in the [manual](https://76cb.github.io/OpenTag-Station-Docs/hardware/mechanical/). |

There is exactly one supported controller and one supported reader, with fixed pins, so buy the parts named in the [parts list](https://76cb.github.io/OpenTag-Station-Docs/hardware/bill-of-materials/) rather than look-alikes. There is no reference enclosure; you design the scale platform yourself.
There is exactly one supported controller and one supported reader, with fixed pins, so buy the parts named in the [parts list](https://76cb.github.io/OpenTag-Station-Docs/hardware/bill-of-materials/) rather than look-alikes. The STL files live on Printables, not in this repository.

<p align="center">
<img src="documentation-site/docs/assets/images/wiring/system.svg" width="860" alt="Wiring diagram: the WT32-SC01 Plus expansion connector to the NAU7802 scale board and the ST25R3916B NFC module">
Expand All @@ -138,7 +139,7 @@ On any other Spoolman or FilaBridge version the station stays connected and read

## Get started

1. **Build it.** Follow the [parts list](https://76cb.github.io/OpenTag-Station-Docs/hardware/bill-of-materials/) and the [wiring guide](https://76cb.github.io/OpenTag-Station-Docs/hardware/wiring/).
1. **Build it.** Follow the [parts list](https://76cb.github.io/OpenTag-Station-Docs/hardware/bill-of-materials/) and the [wiring guide](https://76cb.github.io/OpenTag-Station-Docs/hardware/wiring/), and print the [case](https://www.printables.com/model/1885872-opentag-station).
2. **Install the firmware.** Connect the board with a USB data cable and open the [USB installer](https://76cb.github.io/OpenTag-Station/) ([guide](https://76cb.github.io/OpenTag-Station-Docs/installation/web-flasher/)). A USB install erases all settings and the scale calibration.
3. **Join your Wi-Fi.** The touchscreen shows an open setup network named `OpenTag-Setup-XXXX`. Enter your Wi-Fi on the touchscreen, or join that network and open `http://192.168.4.1/` ([guide](https://76cb.github.io/OpenTag-Station-Docs/getting-started/first-boot/)). Afterwards the station is at `http://opentag-station.local/`.
4. **Prepare Spoolman.** On Spoolman 0.27 or later there is nothing to do. On older versions, add two extra fields of type **Text** to the **Spool** entity, with the keys `opentag_instance_uuid` and `nfc_uid` ([how](https://76cb.github.io/OpenTag-Station-Docs/inventory/custom-fields/)). Without them the station cannot link a tag to a spool.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.0.1-beta.5
1.0.1-beta.6
Binary file modified docs/images/assignment.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/dashboard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions docs/images/provenance.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"tools/capture_product_review.cjs": "23d6c11b616ac2c271e980410b162d71cf69b72575a452926794bf4838fe22d0",
"tools/render_touch_review.py": "8cb523c706690f681f2dc887a726b21e99de020a4d8ec00a9708982073daeeac",
"tools/check_public_privacy.py": "b5b3fc8482b8e9692e1524002b911cbcace8c213fd180454469f7c4963ebacd9",
"src/web/web_assets.cpp": "b565808d7de2cb95615d7ae49db614e4303aec28e91f5ae3ab8c61fa3eefb84c",
"src/web/web_assets.cpp": "61fdc3cd86d95272ab217b29c5f81fde6290625a97c33a5986a96bbb14bc962d",
"src/web/writer_assets.cpp": "18ca31fb929c43f13138fbd4839e4ed60dc10e342cc2c0dbabb6e95d4c8a48c7",
"src/web/writer_layout.inc": "c8835b92d1951269254fec884fe210fc725060528e5505e18a207fbe23d67f98",
"src/ui/product_layout.hpp": "4b3139a7f8e95142f53b72a4c9f4ac05d103426a29210885823b30b3171c8979",
Expand All @@ -18,10 +18,10 @@
"test/test_touch_flow/fixtures.hpp": "e895bf1032a0ddb04a71178fdc8ac3169fb3457274c376ff3e5bbf333f4efe1a"
},
"images": {
"docs/images/dashboard.png": "5a532d455b3d67bd8199043b2b11bb1deba036ae776484082fcac62fd14aace5",
"docs/images/weigh.png": "2a2b2b70419ec4038aa37ef2ad630ef77f13cf2230f444a684805f1750df6bc4",
"docs/images/assignment.png": "60dcdb03a77d12639f0964a8fc2d26d441a9e4c4aa7fb51ae7f7af53387a1362",
"docs/images/tag-management.png": "41772e6e29be1725052d1df0e352fa874850da612c915ed112d030536057df1c",
"docs/images/dashboard.png": "09157492a3d145f557dac3cec7c1924fa30b41f875b3e5943d1c04d455c9fa26",
"docs/images/weigh.png": "9c961a746f6d6063e5a9c894c2736bbfdb5ae6caa0cacef28267bf55b2d3f47b",
"docs/images/assignment.png": "6d8683ed09f8829383c39a52a470df7741235694fb81132e0d1cfd8c9149543c",
"docs/images/tag-management.png": "d32cc3e87a3c3191c63a2cc2a6f834559380e63ed53186e87376eaa2305bcfae",
"docs/images/wt32-home.png": "c768e1b3be568f2563bdf0a368f2cf5b4aab2e2e6efb8a98c8a996ff4dcdc7e3"
}
}
Binary file modified docs/images/tag-management.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/weigh.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation-site/docs/assets/images/browser/assignment.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation-site/docs/assets/images/browser/dashboard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation-site/docs/assets/images/browser/tag-management.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation-site/docs/assets/images/browser/weigh.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 15 additions & 2 deletions documentation-site/docs/configuration/display.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Display

The only display setting you can change is the brightness. The screen dims and switches off by
itself when nobody touches it.
You can change the brightness and turn the screen upside down. The screen dims and switches off
by itself when nobody touches it.

## Change the brightness

Expand All @@ -24,6 +24,19 @@ finger.

The touchscreen changes to the new brightness straight away; you do not need to restart.

## Turn the screen upside down

Use this when the board sits the other way round in your case. The whole touchscreen, including
touch, turns by 180°; nothing else changes.

1. In the browser, go to **Settings** → **Display**.
2. Set **Screen orientation** to **Upside down (turned 180°)**. **Normal** is the default.
3. Click **Validate and save**.

The touchscreen turns straight away and keeps the orientation after a restart. There is no control
for this on the touchscreen itself. The setting key is `device.display_rotation`, `0` or `180`; see
[Configuration keys](../reference/configuration.md).

## Dimming and sleep

- After 2 minutes without a touch the screen dims to 20 %.
Expand Down
2 changes: 1 addition & 1 deletion documentation-site/docs/contributing/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ publishes it, then updates the USB installer from the same files.
Before a release, run the [hardware acceptance](testing.md#hardware-acceptance) checks on a real
station.

The current version is `1.0.1-beta.5`.
The current version is `1.0.1-beta.6`.

## Version names

Expand Down
4 changes: 2 additions & 2 deletions documentation-site/docs/getting-started/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ keep its own inventory.

| You need | Notes |
|---|---|
| The station hardware | A WT32-SC01 Plus touchscreen board, an NFC reader, a load cell with its amplifier, and a platform you build. See the [parts list](../hardware/bill-of-materials.md). |
| The station hardware | A WT32-SC01 Plus touchscreen board, an NFC reader, a load cell with its amplifier, and the [printed case](../hardware/mechanical.md) or a platform you build. See the [parts list](../hardware/bill-of-materials.md). |
| Spoolman | Your own running Spoolman server that the station can reach on your network. The station is not useful without it. Weights are saved to Spoolman 0.26 and 0.27; see [Connect Spoolman](../inventory/spoolman.md). |
| 2.4 GHz Wi-Fi | The station cannot join 5 GHz-only or WPA3-only networks. |
| Blank tags | NXP ICODE SLIX2 (NFC-V / ISO 15693). NTAG and MIFARE tags are found but not read yet; other tag types are not seen at all. See [Which tags work](../openprinttag/supported-tags.md). |
Expand All @@ -44,7 +44,7 @@ Follow these pages in order:

1. [Parts list](../hardware/bill-of-materials.md) — buy the parts.
2. [Wiring](../hardware/wiring.md) — connect the scale and the NFC reader, then check
[Power](../hardware/power.md) and build the [scale platform](../hardware/mechanical.md).
[Power](../hardware/power.md) and print the [case](../hardware/mechanical.md) or build your own platform.
3. [Install the firmware over USB](../installation/web-flasher.md).
4. [First boot and Wi-Fi](first-boot.md) — get the station onto your network.
5. [Connect Spoolman and FilaBridge](initial-setup.md) — including the
Expand Down
5 changes: 2 additions & 3 deletions documentation-site/docs/hardware/bill-of-materials.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ so buy these parts and not look-alikes.
| Scale converter | 1 | **NAU7802** breakout board | See [Choosing a NAU7802 board](#choosing-a-nau7802-board) below. |
| Load cell | 1 | **YZC-133**, **5 kg** (default) or **2 kg** | A four-wire bar-type cell. Get the seller's wiring sheet and mounting drawing. Use one cell, not two. |
| NFC reader | 1 | **ELECHOUSE NFC_ST25R3916B** module (ST25R3916B chip, antenna on the board) | The module must be switched to I2C mode with its solder bridge (see [Wiring](wiring.md)). The pin order in this manual is for this module only. |
| NFC tags | one per spool | **NXP ICODE SLIX2** (NFC-V / ISO 15693), blank | NTAG and MIFARE tags are not seen by the reader at all. Other ISO 15693 tags are seen but cannot be written. See [Which tags work](../openprinttag/supported-tags.md). |
| NFC tags | one per spool | **NXP ICODE SLIX2** (NFC-V / ISO 15693), blank | NTAG and MIFARE tags are found but not read. Other ISO 15693 tags are read but cannot be written. See [Which tags work](../openprinttag/supported-tags.md). |
| USB cable | 1 | A data cable that fits the board's USB socket | Charge-only cables cannot install the firmware. |
| 5 V power supply | 1 | A regulated 5 V USB supply | See [Power](power.md). |
| Cable for the expansion connector | 1 | An 8-wire cable that fits the board's EXT connector | Match the connector on your board. |
| Cable for the NFC module | 1 | A 7-wire cable that fits the module's connector | Match the connector on your module. |
| Hook-up wire, pin headers | as needed | For the NAU7802 board and the load cell | Depends on your breakout board. |
| Base, platform, screws, spacers | 1 set | To mount the load cell | You design this yourself. See [Scale platform and enclosure](mechanical.md). |
| Enclosure | 1 | The [printed case](mechanical.md#the-printed-case) (three parts, about 299 g of filament), or a base and platform you build | The case needs 2 × M5 nuts, 2 × M5 × 12 button-head screws, 2 × M5 × 16 cap screws, 2 × M2.5 × 10 screws with nuts, four 12 mm rubber feet, a USB-C panel-mount cable and a right-angle USB-C plug. See [Scale platform and enclosure](mechanical.md). |

### Choosing a NAU7802 board

Expand All @@ -36,7 +36,6 @@ The project has not tested or measured any of these, so it names none:

- **Sellers and prices.**
- **A specific NAU7802 board.** Any breakout that meets the checks above should work.
- **An enclosure.** There is no reference case, no printable model and no drawing with dimensions.
- **A current rating for the power supply.**

## For the curious: how the parts fit the firmware
Expand Down
74 changes: 69 additions & 5 deletions documentation-site/docs/hardware/mechanical.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,74 @@
# Scale platform and enclosure

The project has no reference enclosure: no printable case, no drawing, no hole pattern.
You build the base and the platform yourself.
This page lists what matters for weighing accurately and reading tags reliably.
There is a printed case for the station, designed by the project's author:
[OpenTag-Station on Printables](https://www.printables.com/model/1885872-opentag-station)
(Creative Commons BY-NC-SA 4.0). You can also build your own base and platform; the second half of
this page lists what matters then for weighing accurately and reading tags reliably.

## Mount the load cell
## The printed case

Three parts, about 299 g of filament, no supports. The reader tower at the back holds the NFC
module and is also the backstop for the spool. The body is closed, with the screen flush in the
top; everything goes in from above, and there is nothing to open underneath. The pockets fit a
right-angle USB-C plug and the WT32's side-entry JST plugs. The ring on the tower is 54 mm across
and plain, for a logo or a sticker.

The STL files are not in this repository; download them from the Printables page.

| File | Orientation | Notes |
|---|---|---|
| `scale_body.stl` | Upright, flat floor on the bed | Footprint 154 × 190 mm, 120 mm tall: the bed must be at least 195 mm in Y. No real overhangs; the tunnel roofs are flat bridges of 14 mm or less. |
| `scale_platform.stl` | Flat side down | The channel underneath is a 14.6 mm bridge. |
| `nfc_cap.stl` | On its back, as exported | |

Print settings: PLA or PETG, 0.2 mm layers, 3 to 4 walls, 15 % gyroid infill, no supports. The
files are exported in print orientation; import them as they are.

Hardware for the case, in addition to the [parts list](bill-of-materials.md):

- 2 × M5 nuts and 2 × M5 × 12 button-head screws (ISO 7380, head height 2.8 mm or less)
- 2 × M5 × 16 cap screws
- 2 × M2.5 × 10 screws with nuts
- 4 × 12 mm stick-on rubber feet (or print your own in TPU)
- A USB-C panel-mount cable and a right-angle USB-C plug

### Assembly

1. **Load cell.** Slide two M5 nuts into the channel at the end of the load-cell pedestal (left
end, reachable through the platform bay). Set the cell on the pedestal with the wires toward
the left, then screw the button-head screws down into the nuts.
2. **USB-C panel cable.** Put the flange in the rear recess and pass the plug end through into
the bay. Secure it with the two M2.5 screws and nuts; the hex traps open into the bay. Route
it through the right tunnel and the load-cell wires through the left tunnel. Both come out in
the cavity under the screen.
3. **NAU7802.** Place it between the locator lugs on the cavity floor, under the screen.
4. **NFC reader.** Drop it into the tower slot from the top. Its wires go down the shaft inside
the tower and come out into the platform bay. Run them across the bay into the left or right
tunnel with the other cables, then press the cap on.
5. **Platform.** Put it on the cell's free end with the two M5 × 16 screws through the oblong
pocket. It sits straight on the cell, with no spacer.
6. **Screen.** Orientation matters, because the cavity has pockets for the plugs. Seen from the
front, the WT32's USB-C end goes on the left and the edge with the I/O, DEBUG and SPK JST
connectors at the top, toward the back. The right-angle USB-C plug fits untrimmed in the
front-left corner; the JST plugs and their wire bend have a pocket under the back edge. Plug in
the cables, then press the WT32 straight down until the glass is flush with the top. Four
0.2 mm friction ribs on the side walls hold it, and it rests on a 3 mm ledge all around.
7. **Feet.** Stick the four rubber feet under the body.

To remove the screen, use a small suction cup of the phone-repair kind. If the screen is loose on
your print, two thin strips of double-sided foam tape on the ledge fix it. If the picture comes up
upside down for the way the board sits, turn it in the browser: **Settings → Display → Screen
orientation**, see [Display](../configuration/display.md#turn-the-screen-upside-down).

Put the spool on with its tagged flange facing the back tower, and slide it in from the front
until it touches.

## Build your own base and platform

If you do not print the case, the rules below apply. They also explain why the case is shaped
the way it is.

### Mount the load cell

The YZC-133 is a bar that bends very slightly under load.
One end is fixed to the base, the other end carries the platform.
Expand All @@ -21,7 +85,7 @@ Use the mounting drawing that came with your cell for hole positions and screw s
A tight cable acts as a spring and shifts the zero point.
6. Make the platform large and level enough that a spool cannot tip or hang over an edge.

## Place the NFC reader
### Place the NFC reader

The antenna is on the NFC module itself.

Expand Down
1 change: 1 addition & 0 deletions documentation-site/docs/reference/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ calibration.
|---|---|---|
| `hostname` | `opentag-station` | 1–63 characters of `a–z 0–9 -`, not starting or ending with `-` |
| `brightness_percent` | `80` | 5–100 |
| `display_rotation` | `0` | `0` or `180`. Turns the touchscreen, including touch, upside down. Applied at once, no restart. |
| `dim_after_ms` | `120000` | 1–86,400,000 |
| `sleep_after_ms` | `300000` | `dim_after_ms`–86,400,000 |
| `update_channel` | `stable` | `stable`, `beta` or `development`. Stored only; it changes nothing. |
Expand Down
16 changes: 16 additions & 0 deletions documentation-site/docs/reference/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,22 @@

What changed in each version of OpenTag Station, newest first.

## 1.0.1-beta.6

Pre-release for testers. One new setting. Not run on a WT32 by the author; see "Needs a station".

**Display**
- **The screen can be turned upside down.** Browser: **Settings → Display → Screen orientation**,
**Normal** or **Upside down (turned 180°)**. The touchscreen, including touch, turns at once and
keeps the orientation after a restart. Settings key `device.display_rotation`, `0` or `180`;
`GET /api/v1/config` reports it and `PATCH /api/v1/config` accepts it under `device`. Any other
value is refused. Older saved settings without the key mean `0`.

**Needs a station**
- Set the orientation to upside down in the browser and check that the screen turns without a
restart, that touches land where they are shown (tap each of the five pages), that the setting
survives a reboot, and that **Normal** turns it back.

## 1.0.1-beta.5

Pre-release for testers. First step of the tag-support roadmap (#93): the reader now also looks
Expand Down
2 changes: 1 addition & 1 deletion documentation-site/firmware.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "1.0.1-beta.5",
"version": "1.0.1-beta.6",
"source_repository": "76cb/OpenTag-Station",
"source_ref": "main",
"acceptance": "pending"
Expand Down
Loading
Loading